(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 提供者 。 可能的傳回值包括下列專案。
傳回碼/值 | 描述 |
---|---|
|
移轉已順利完成。 |
|
至少無法轉換其中一個磁片,或可以警告進行轉換。 |
|
其中一個磁片無法使用。 |
|
嘗試匯入外部套件中的磁片子集。 |
下列警告和錯誤可以透過 pResults傳回:
傳回碼/值 | 描述 |
---|---|
|
開機磁碟分割的分割區編號會隨著移轉作業而變更。 |
|
選取的磁片沒有足夠的可用空間可完成作業。 |
|
在選取的磁片上偵測到作用中的磁碟分割,而不是用來開機使用中作業系統的作用中磁碟分割。 |
|
無法讀取資料分割資訊。 |
|
在選取的磁片上偵測到具有未知類型的磁碟分割。 |
|
選取的 GPT 磁片包含非基本資料分割,前方和後面接著一或多個基本資料分割。 |
|
無法開啟所選磁片上的磁片區。 |
備註
VDS 會實作這個方法。
單一套件只能有一個基本磁碟。 因此,您一次只能在基本與動態套件之間移轉一個磁片。
將基本磁碟轉換成動態磁碟格式時,您應該強制執行這項作業,而磁片結尾沒有足夠的空間供 LDM 資料庫使用。 將 bForce 參數設定為 true ,並強制作業,儘管有空間限制。 同樣地,如果 OEM 磁碟分割位於兩端具有可用空間或資料磁片區的 MBR 磁碟中間。
將動態磁碟移轉至動態套件之後,您應該使用 IVdsPack::GetProperties 方法來判斷來源或目的地套件現在是線上套件。
如需使用 MigrateDisks 方法將外部磁片新增至套件的相關資訊,請參閱 將外部磁片新增至套件。
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平臺 | Windows |
標頭 | vds.h |
程式庫 | Uuid.lib |