共用方式為


(vds.h) IVdsPack::MigrateDisks 方法

[從Windows 8和Windows Server 2012開始,虛擬磁碟服務COM 介面會由Windows 儲存體管理 API取代。

將一組磁片從一個套件移轉至另一個套件。

語法

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
);

參數

[in] pDiskArray

GUID 陣列的指標;每個磁片各一個。

[in] lNumberOfDisks

要移轉的磁片數目。

[in] TargetPack

Pack 物件的 GUID。

[in] bForce

如果此參數設定為 TRUE,VDS 會忽略此方法的所有錯誤,並嘗試無條件地移轉磁片。 如果設定為 FALSE,則不會繼續作業。 在某些情況下,強制移轉可能會導致資料遺失。

[in] bQueryOnly

如果此參數設定為 TRUE,則不會進行移轉。 如果設定為 FALSE,作業會繼續進行。

[out] pResults

HRESULT值的呼叫端配置陣列位址。 陣列中的元素數目為 lNumberOfDisks

如果磁片可以移轉,或已成功移轉,對應的陣列元素會收到 S_OK;否則,它會收到提供者所傳回的警告碼或錯誤碼。 如需其他結果碼的清單,請參閱傳回值。

[out] pbRebootNeeded

如果此參數設定為 TRUE,您必須重新開機電腦才能完成作業。 如果設定為 FALSE,作業就會完成,而不會重新開機。

傳回值

這個方法可以傳回標準 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 VDS 特定的傳回值。 它也可以使用HRESULT_FROM_WIN32宏傳回已轉換的系統錯誤碼。 錯誤可能源自 VDS 本身,或來自正在使用的基礎 VDS 提供者 。 可能的傳回值包括下列專案。

傳回碼/值 描述
S_OK
移轉已順利完成。
S_FALSE
至少無法轉換其中一個磁片,或可以警告進行轉換。
VDS_E_DISK_NOT_ONLINE
0x8004244BL
其中一個磁片無法使用。
VDS_E_IMPORT_SET_INCOMPLETE
0x80042451L
嘗試匯入外部套件中的磁片子集。
 

下列警告和錯誤可以透過 pResults傳回:

傳回碼/值 描述
VDS_S_BOOT_PARTITION_NUMBER_CHANGE
0x00042436L
開機磁碟分割的分割區編號會隨著移轉作業而變更。
VDS_E_NO_FREE_SPACE
0x80042437L
選取的磁片沒有足夠的可用空間可完成作業。
VDS_E_ACTIVE_PARTITION
0x80042438L
在選取的磁片上偵測到作用中的磁碟分割,而不是用來開機使用中作業系統的作用中磁碟分割。
VDS_E_PARTITION_OF_UNKNOWN_TYPE
0x80042439L
無法讀取資料分割資訊。
VDS_E_LEGACY_VOLUME_FORMAT
0x8004243AL
在選取的磁片上偵測到具有未知類型的磁碟分割。
VDS_E_NON_CONTIGUOUS_DATA_PARTITIONS
0x8004243BL
選取的 GPT 磁片包含非基本資料分割,前方和後面接著一或多個基本資料分割。
VDS_E_MIGRATE_OPEN_VOLUME
0x8004243CL
無法開啟所選磁片上的磁片區。

備註

VDS 會實作這個方法。

單一套件只能有一個基本磁碟。 因此,您一次只能在基本與動態套件之間移轉一個磁片。

將基本磁碟轉換成動態磁碟格式時,您應該強制執行這項作業,而磁片結尾沒有足夠的空間供 LDM 資料庫使用。 將 bForce 參數設定為 true ,並強制作業,儘管有空間限制。 同樣地,如果 OEM 磁碟分割位於兩端具有可用空間或資料磁片區的 MBR 磁碟中間。

將動態磁碟移轉至動態套件之後,您應該使用 IVdsPack::GetProperties 方法來判斷來源或目的地套件現在是線上套件。

如需使用 MigrateDisks 方法將外部磁片新增至套件的相關資訊,請參閱 將外部磁片新增至套件

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平臺 Windows
標頭 vds.h
程式庫 Uuid.lib

另請參閱

IVdsPack

IVdsPack::GetProperties