Bagikan melalui


Fungsi OpenVirtualDisk (virtdisk.h)

Membuka hard disk virtual (VHD) atau file gambar CD atau DVD (ISO) untuk digunakan.

Sintaks

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
);

Parameter

[in] VirtualStorageType

Penunjuk ke struktur VIRTUAL_STORAGE_TYPE yang valid.

[in] Path

Penunjuk ke jalur yang valid ke gambar disk virtual untuk dibuka.

[in] VirtualDiskAccessMask

Nilai enumerasi VIRTUAL_DISK_ACCESS_MASK yang valid.

[in] Flags

Kombinasi nilai yang valid dari enumerasi OPEN_VIRTUAL_DISK_FLAG .

[in, optional] Parameters

Penunjuk opsional ke struktur OPEN_VIRTUAL_DISK_PARAMETERS yang valid. Bisa NULL.

[out] Handle

Penunjuk ke objek handel yang mewakili disk virtual terbuka.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS (0) dan parameter Handel berisi penunjuk yang valid ke objek disk virtual baru.

Jika fungsi gagal, nilai yang dikembalikan adalah kode kesalahan dan nilai parameter Handle tidak terdefinisi. Untuk informasi selengkapnya, lihat Kode Kesalahan Sistem.

Keterangan

Untuk mencegah kegagalan permintaan terbuka saat mencoba membuka handel ke disk virtual yang terpasang secara permanen, persyaratan berikut berlaku:

  • Parameter VirtualDiskAccessMask harus menyertakan bendera VIRTUAL_DISK_ACCESS_DETACH (0x00040000).
  • Akses tulis ke file tidak boleh diminta jika operasi buka asli yang membuat disk virtual yang terpasang secara permanen hanya meminta akses baca.
Jika fungsi OpenVirtualDisk gagal dengan nilai kode kesalahan ERROR_INVALID_PARAMETER (87), penyebabnya mungkin karena salah satu kondisi berikut:
  • Parameter VirtualStorageType adalah NULL.
  • Parameter Jalur adalah NULL.
  • Parameter VirtualDiskAccessMask diatur ke nilai (VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL).
  • Parameter Bendera diatur ke nilai (Flags & ~(OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS | OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE)).
  • Anggota versi parameter Parameter tidak diatur ke OPEN_VIRTUAL_DISK_VERSION_1 atau OPEN_VIRTUAL_DISK_VERSION_2.
Volume host yang berisi file gambar disk virtual tidak dapat dikompresi atau dienkripsi EFS. Fungsi ini akan gagal dengan kesalahan ERROR_UNSUPPORTED_COMPRESSION (618) jika volume host telah dikompresi atau dengan kesalahan ERROR_FILE_ENCRYPTED (6002) jika volume host telah dienkripsi EFS setelah pembuatan disk virtual awal.

Jalur yang ditujukkan oleh parameter Jalur tidak dapat berada di berbagi jaringan lokal (yang merupakan berbagi jaringan melalui loopback). Fungsi ini akan gagal dengan kesalahan ERROR_FILE_SYSTEM_LIMITATION (665) jika jalur berada di berbagi jaringan lokal. Fungsi ini akan gagal dengan kesalahan ERROR_FILE_CORRUPT (1392) jika disk virtual ISO sedang dibuka dan ukuran file bahkan bukan kelipatan 2 KB (2.048 byte), setidaknya 34 KB (34.816 byte), atau deskriptor struktur volume tidak berisi pengidentifikasi volume CDFS atau UDFS yang diketahui.

Ketika aplikasi selesai menggunakan handel objek yang dikembalikan dalam parameter Handle , gunakan fungsi CloseHandle untuk menutup handel.

File gambar CD dan DVD (ISO) tidak didukung sebelum Windows 8 dan Windows Server 2012.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7
Server minimum yang didukung Windows Server 2008 R2
Target Platform Windows
Header virtdisk.h
Pustaka VirtDisk.lib
DLL VirtDisk.dll

Lihat juga

Tentang VHD

CreateVirtualDisk

Referensi VHD