DetachVirtualDisk 函式 (virtdisk.h)
找到適當的虛擬磁碟提供者來完成作業,以卸離虛擬硬碟 (VHD) 或 CD 或 DVD 映像檔 (ISO) 。
語法
DWORD DetachVirtualDisk(
[in] HANDLE VirtualDiskHandle,
[in] DETACH_VIRTUAL_DISK_FLAG Flags,
[in] ULONG ProviderSpecificFlags
);
參數
[in] VirtualDiskHandle
已開啟虛擬磁碟的句柄,必須使用 VirtualDiskAccessMask 參數中設定的 VIRTUAL_DISK_ACCESS_DETACH 旗標開啟,才能開啟該虛擬磁碟。 如需如何開啟虛擬磁碟的詳細資訊,請參閱 OpenVirtualDisk 函 式。
[in] Flags
DETACH_VIRTUAL_DISK_FLAG列舉值的有效組合。
[in] ProviderSpecificFlags
要卸離之虛擬磁碟類型的特定旗標。 如果不需要,則可能為零。
傳回值
要求的狀態。
如果函式成功,傳回值會 ERROR_SUCCESS。
如果函式失敗,傳回值就是錯誤碼。 如需詳細資訊,請參閱 系統錯誤碼。
備註
如果 DetachVirtualDisk 函式失敗,錯誤碼值為 ERROR_INVALID_PARAMETER,原因可能是下列任一狀況所造成:
- VirtualDiskHandle 參數不是 OpenVirtualDisk 函式所建立的有效句柄。
- Flags 參數設定為 DETACH_VIRTUAL_DISK_FLAG_NONE ( 0) 以外的值。
必須先關閉虛擬磁碟的所有其他開啟句柄, DetachVirtualDisk 函式才能成功。
如果虛擬磁碟已連結,而且另一個用來連接它的句柄已經關閉,這是因為已指定 ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME 旗標。 在此情況下, DetachVirtualDisk 函 式可能會成功,但 VHD 會維持鏈接狀態。 如果未指定 ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME ,當最後一個開啟句柄關閉時,會自動卸離虛擬磁碟。
如果找不到提供者、如果映像檔無效、未附加映像,或呼叫端沒有 Windows Server 操作系統的 SE_MANAGE_VOLUME_PRIVILEGE 訪問許可權,則此函式將會失敗。 如需檔案安全性的詳細資訊,請參閱 檔案安全性和訪問許可權。
#DE3C0ECAC8643444EBD097727E77E75FB 和 Windows Server 2012 之前,不支援 (ISO) CD 和 DVD 映射檔。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 |
最低支援的伺服器 | Windows Server 2008 R2 |
目標平台 | Windows |
標頭 | virtdisk.h |
程式庫 | VirtDisk.lib |
Dll | VirtDisk.dll |