IVdsPack::MigrateDisks-Methode (vds.h)

[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts von der Windows Storage Management-API abgelöst.]

Migriert eine Gruppe von Datenträgern von einem Paket zu einem anderen.

Syntax

HRESULT MigrateDisks(
  [in]  VDS_OBJECT_ID *pDiskArray,
  [in]  LONG          lNumberOfDisks,
  [in]  VDS_OBJECT_ID TargetPack,
  [in]  BOOL          bForce,
  [in]  BOOL          bQueryOnly,
  [out] HRESULT       *pResults,
  [out] BOOL          *pbRebootNeeded
);

Parameter

[in] pDiskArray

Ein Zeiger auf ein Array von GUIDs; eins für jeden Datenträger.

[in] lNumberOfDisks

Die Anzahl der zu migrierenden Datenträger.

[in] TargetPack

Die GUID des Paketobjekts.

[in] bForce

Wenn dieser Parameter auf TRUE festgelegt ist, ignoriert VDS alle Fehler dieser Methode und versucht, die Datenträger bedingungslos zu migrieren. Wenn er auf FALSE festgelegt ist, wird der Vorgang nicht fortgesetzt. In einigen Fällen kann eine erzwungene Migration zu Datenverlust führen.

[in] bQueryOnly

Wenn dieser Parameter auf TRUE festgelegt ist, erfolgt die Migration nicht. Wenn er auf FALSE festgelegt ist, wird der Vorgang fortgesetzt.

[out] pResults

Die Adresse eines vom Aufrufer zugeordneten Arrays von HRESULT-Werten . Die Anzahl der Elemente im Array ist lNumberOfDisks.

Wenn ein Datenträger migriert werden kann oder erfolgreich migriert wurde, empfängt das entsprechende Arrayelement S_OK. Andernfalls empfängt er den Vom Anbieter zurückgegebenen Warnungs- oder Fehlercode. Eine Liste der zusätzlichen Ergebniscodes finden Sie unter Rückgabewerte.

[out] pbRebootNeeded

Wenn dieser Parameter auf TRUE festgelegt ist, müssen Sie den Computer neu starten, um den Vorgang abzuschließen. Wenn er auf FALSE festgelegt ist, wird der Vorgang ohne Neustart abgeschlossen.

Rückgabewert

Diese Methode kann HRESULT-Standardwerte wie E_INVALIDARG oder E_OUTOFMEMORY und VDS-spezifische Rückgabewerte zurückgeben. Es kann auch konvertierte Systemfehlercodes mithilfe des makros HRESULT_FROM_WIN32 zurückgeben. Fehler können vom VDS selbst oder vom zugrunde liegenden VDS-Anbieter stammen, der verwendet wird. Folgende Rückgabewerte sind möglich.

Rückgabecode/-wert BESCHREIBUNG
S_OK
Die Migration wurde erfolgreich abgeschlossen.
S_FALSE
Mindestens einer der Datenträger kann nicht konvertiert oder mit Warnung konvertiert werden.
VDS_E_DISK_NOT_ONLINE
0x8004244BL
Einer der Datenträger ist nicht verfügbar.
VDS_E_IMPORT_SET_INCOMPLETE
0x80042451L
Es wurde versucht, eine Teilmenge der Datenträger im fremden Paket zu importieren.
 

Die folgenden Warnungen und Fehler können über pResults zurückgegeben werden:

Rückgabecode/-wert BESCHREIBUNG
VDS_S_BOOT_PARTITION_NUMBER_CHANGE
0x00042436L
Die Partitionsnummer der Startpartition wurde als Ergebnis des Migrationsvorgangs geändert.
VDS_E_NO_FREE_SPACE
0x80042437L
Der ausgewählte Datenträger verfügt nicht über genügend freien Speicherplatz, um den Vorgang abzuschließen.
VDS_E_ACTIVE_PARTITION
0x80042438L
Auf dem ausgewählten Datenträger wurde eine aktive Partition erkannt, und es handelt sich nicht um die aktive Partition, die zum Starten des aktiven Betriebssystems verwendet wird.
VDS_E_PARTITION_OF_UNKNOWN_TYPE
0x80042439L
Die Partitionsinformationen können nicht gelesen werden.
VDS_E_LEGACY_VOLUME_FORMAT
0x8004243AL
Auf dem ausgewählten Datenträger wurde eine Partition mit einem unbekannten Typ erkannt.
VDS_E_NON_CONTIGUOUS_DATA_PARTITIONS
0x8004243BL
Der ausgewählte GPT-Datenträger enthält eine nicht einfache Datenpartition, der sowohl eine als auch eine oder mehrere grundlegende Datenpartitionen vorangestellt sind.
VDS_E_MIGRATE_OPEN_VOLUME
0x8004243CL
Ein Volume auf dem ausgewählten Datenträger kann nicht geöffnet werden.

Bemerkungen

VDS implementiert diese Methode.

Ein einzelnes Paket kann nur über einen Basisdatenträger verfügen. Daher können Sie jeweils nur einen Datenträger zwischen einem Basis- und einem dynamischen Paket migrieren.

Sie sollten diesen Vorgang erzwingen, wenn Sie einen Basisdatenträger in ein dynamisches Datenträgerformat konvertieren, und am Ende des Datenträgers fehlt genügend Speicherplatz für die LDM-Datenbank. Legen Sie den bForce-Parameter auf true fest, und erzwingen Sie den Vorgang trotz der Speicherplatzbeschränkung. Ebenso, wenn sich eine OEM-Partition in der Mitte eines MBR-Datenträgers mit freiem Speicherplatz oder Datenvolumes auf beiden Seiten befindet.

Nach der Migration dynamischer Datenträger zu einem dynamischen Paket sollten Sie die IVdsPack::GetProperties-Methode verwenden, um zu bestimmen, ob das Quell- oder Zielpaket jetzt das Onlinepaket ist.

Informationen zur Verwendung der MigrateDisks-Methode zum Hinzufügen fremder Datenträger zu einem Paket finden Sie unter Hinzufügen fremder Datenträger zu einem Pack.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile vds.h
Bibliothek Uuid.lib

Weitere Informationen

IVdsPack

IVdsPack::GetProperties