IVdsServiceUninstallDisk::UninstallDisks 方法 (vds.h)
[從 Windows 8 和 Windows Server 2012 開始,虛擬磁碟服務 COM 介面會由 Windows 記憶體管理 API 取代。
卸載一組磁碟。
語法
HRESULT UninstallDisks(
[in] VDS_OBJECT_ID *pDiskIdArray,
[in] ULONG ulCount,
[in] BOOLEAN bForce,
[out] BOOLEAN *pbReboot,
[out] HRESULT *pResults
);
參數
[in] pDiskIdArray
緩衝區的位址,其中包含 VDS 物件識別碼的陣列,每個要卸載的磁碟各一個。 數位中的每個識別碼都必須是唯一的。
[in] ulCount
pDiskIdArray 參數指向之緩衝區中的 VDS 對象識別碼數目。
[in] bForce
如果 為 TRUE,即使磁碟區無法鎖定或卸除,VDS 仍會卸載磁碟。
[out] pbReboot
如果用戶必須重新啟動電腦才能完成卸載程式,則會接收 TRUE 的 BOOLEAN 變數位址。
[out] pResults
HRESULT 值的呼叫端配置數位位址。 陣列中的元素數目是由 pDiskIdArray 參數所指向。 這個陣列的第一個項目會對應至 pDiskIdArray 中的第一個專案,依此類推斷。 如果有任何磁碟無法正確初始化,則會在此數位的對應元素中傳回失敗的特定錯誤碼。
傳回值
這個方法可以傳回標準 HRESULT 值,例如 E_INVALIDARG 或 E_OUTOFMEMORY,以及 VDS 特定的傳回值。 它也可以使用 HRESULT_FROM_WIN32 宏傳回已轉換的系統錯誤碼。 錯誤可能源自 VDS 本身,或來自正在使用的基礎 VDS 提供者 。 可能的傳回值包括下列專案。
傳回碼/值 | 描述 |
---|---|
|
已成功卸載磁碟。 |
|
這個方法傳回一或多個磁碟的警告或錯誤碼。 |
|
磁碟已成功卸載,但無法針對一或多個磁碟擷取 GUID 磁碟分區數據表 (GPT) 屬性。 |
|
VDS 發生內部錯誤。 查看事件記錄檔以取得詳細資訊。 |
|
遺失一或多個磁碟。 |
|
無法擷取一或多個磁碟的路徑。 |
|
無法擷取一或多個磁碟區的路徑。 |
|
一或多個指定的 VDS 對象標識碼會對應至不再存在的磁碟。 |
|
一或多個指定的 VDS 物件標識碼對應至不存在的磁碟。 |
|
提供者的快取不會與驅動程式快取同步。 |
備註
VDS 會實作這個方法。
這個同步方法會先卸載指定磁碟上的磁碟區,然後再卸載磁碟。 卸載磁碟之後,對應的 LUN 可以遮罩 (隱藏) 或刪除。
這個方法會清除指派給磁碟上磁碟區之驅動器號。 此外,它會將磁碟區設定為離線,以防止在卸除句柄關閉但實際移除磁碟之前重新掛接磁碟區。
拿掉跨越多個磁碟的動態磁碟區時,您必須呼叫此方法,而不是使用設備管理器功能。
如需如何在不支援 UninstallDisks 方法的 Windows Server 2003 版本上卸載磁碟的指示,請參閱 IVdsLun::SetMask 方法的一節。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 R2 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | vds.h |
程式庫 | Uuid.lib |