OpenVirtualDisk 函式 (virtdisk.h)

開啟虛擬硬碟 (VHD) 或 CD 或 DVD 映像檔, (ISO) 以供使用。

語法

DWORD OpenVirtualDisk(
  [in]           PVIRTUAL_STORAGE_TYPE         VirtualStorageType,
  [in]           PCWSTR                        Path,
  [in]           VIRTUAL_DISK_ACCESS_MASK      VirtualDiskAccessMask,
  [in]           OPEN_VIRTUAL_DISK_FLAG        Flags,
  [in, optional] POPEN_VIRTUAL_DISK_PARAMETERS Parameters,
  [out]          PHANDLE                       Handle
);

參數

[in] VirtualStorageType

有效 VIRTUAL_STORAGE_TYPE 結構的指標。

[in] Path

要開啟之虛擬磁碟映像之有效路徑的指標。

[in] VirtualDiskAccessMask

VIRTUAL_DISK_ACCESS_MASK列舉的有效值。

[in] Flags

OPEN_VIRTUAL_DISK_FLAG 列舉值 的有效組合。

[in, optional] Parameters

有效 OPEN_VIRTUAL_DISK_PARAMETERS 結構的選擇性指標。 可以是 NULL

[out] Handle

表示已開啟之虛擬磁碟之句柄物件的指標。

傳回值

如果函式成功,傳回值 會ERROR_SUCCESS ( 0) , 而 Handle 參數則包含新虛擬磁碟物件的有效指標。

如果函式失敗,傳回值是錯誤碼, 且 Handle 參數的值未定義。 如需詳細資訊,請參閱 系統錯誤碼

備註

若要在嘗試開啟永久鏈接虛擬磁碟的句柄時防止開啟要求失敗,適用下列需求:

  • VirtualDiskAccessMask 參數必須包含 VIRTUAL_DISK_ACCESS_DETACH (0x00040000) 旗標。
  • 如果建立永久鏈接虛擬磁碟的原始開啟作業只要求讀取存取權,則不得要求檔案的寫入許可權。
如果 OpenVirtualDisk 函式失敗,錯誤碼值為 ERROR_INVALID_PARAMETER ( 87) ,原因可能是下列任何一種狀況所造成:
  • VirtualStorageType 參數為 NULL
  • Path 參數為 NULL
  • VirtualDiskAccessMask 參數設定為 的值(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
  • Flags 參數設定為 的值(Flags & ~(OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS | OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE))
  • Parameters 參數的 Version 成員未設定為 OPEN_VIRTUAL_DISK_VERSION_1OPEN_VIRTUAL_DISK_VERSION_2
包含虛擬磁碟映像檔案的主機磁碟區無法壓縮或 EFS 加密。 如果主機磁碟區已壓縮或錯誤ERROR_FILE_ENCRYPTED ( 6002) 主機磁碟區在初始虛擬磁碟建立之後已加密,則此函式將會失敗,ERROR_UNSUPPORTED_COMPRESSION (618) 錯誤。

Path 參數所指向的路徑不能位於透過回送) 的網路共用 (。 如果路徑位於局域網路共用上,此函式將會失敗 ,ERROR_FILE_SYSTEM_LIMITATION ( 665) 錯誤。 如果開啟 ISO 虛擬磁碟,且檔案大小不是 2 (,048 個字節) 的倍數, () 34,816 個字節) ,或磁碟區結構描述元不包含已知的 CDFS 或 UDFS 磁碟區標識符,此函式將會 ERROR_FILE_CORRUPT 失敗, ( (34,816 個字節) 。

當應用程式使用 Handle 參數中傳回的物件句柄完成時,請使用 CloseHandle 函式來關閉句柄。

#DBF8C68BBE97643A6A90D5DA2872412BD 和 Windows Server 2012 之前,不支援 (ISO) 的 CD 和 DVD 映射檔。

規格需求

需求
最低支援的用戶端 Windows 7
最低支援的伺服器 Windows Server 2008 R2
目標平台 Windows
標頭 virtdisk.h
程式庫 VirtDisk.lib
Dll VirtDisk.dll

另請參閱

關於 VHD

CreateVirtualDisk

VHD 參考