共用方式為


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

如果用戶必須重新啟動電腦才能完成卸載程式,則會接收 TRUEBOOLEAN 變數位址。

[out] pResults

HRESULT 值的呼叫端配置數位位址。 陣列中的元素數目是由 pDiskIdArray 參數所指向。 這個陣列的第一個項目會對應至 pDiskIdArray 中的第一個專案,依此類推斷。 如果有任何磁碟無法正確初始化,則會在此數位的對應元素中傳回失敗的特定錯誤碼。

傳回值

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

傳回碼/值 描述
S_OK
0
已成功卸載磁碟。
S_FALSE
1
這個方法傳回一或多個磁碟的警告或錯誤碼。
VDS_S_UNABLE_TO_GET_GPT_ATTRIBUTES
0x0004245BL
磁碟已成功卸載,但無法針對一或多個磁碟擷取 GUID 磁碟分區數據表 (GPT) 屬性。
VDS_E_INTERNAL_ERROR
0x80042448L
VDS 發生內部錯誤。 查看事件記錄檔以取得詳細資訊。
VDS_E_MISSING_DISK
0x80042454L
遺失一或多個磁碟。
VDS_E_NO_DISK_PATHNAME
0x8004270FL
無法擷取一或多個磁碟的路徑。
VDS_E_NO_VOLUME_PATHNAME
0x80042711L
無法擷取一或多個磁碟區的路徑。
VDS_E_OBJECT_DELETED
0x8004240BL
一或多個指定的 VDS 對象標識碼會對應至不再存在的磁碟。
VDS_E_OBJECT_NOT_FOUND
0x80042405L
一或多個指定的 VDS 物件標識碼對應至不存在的磁碟。
VDS_E_PROVIDER_CACHE_OUTOFSYNC
0x80042712L
提供者的快取不會與驅動程式快取同步。

備註

VDS 會實作這個方法。

這個同步方法會先卸載指定磁碟上的磁碟區,然後再卸載磁碟。 卸載磁碟之後,對應的 LUN 可以遮罩 (隱藏) 或刪除。

這個方法會清除指派給磁碟上磁碟區之驅動器號。 此外,它會將磁碟區設定為離線,以防止在卸除句柄關閉但實際移除磁碟之前重新掛接磁碟區。

拿掉跨越多個磁碟的動態磁碟區時,您必須呼叫此方法,而不是使用設備管理器功能。

如需如何在不支援 UninstallDisks 方法的 Windows Server 2003 版本上卸載磁碟的指示,請參閱 IVdsLun::SetMask 方法的一節。

規格需求

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

另請參閱

IVdsServiceUninstallDisk