Bagikan melalui


Fungsi CreateVirtualDisk (virtdisk.h)

Membuat file gambar hard disk virtual (VHD), baik menggunakan parameter default atau menggunakan disk virtual atau disk fisik yang ada.

Sintaks

DWORD CreateVirtualDisk(
  [in]           PVIRTUAL_STORAGE_TYPE           VirtualStorageType,
  [in]           PCWSTR                          Path,
  [in]           VIRTUAL_DISK_ACCESS_MASK        VirtualDiskAccessMask,
  [in, optional] PSECURITY_DESCRIPTOR            SecurityDescriptor,
  [in]           CREATE_VIRTUAL_DISK_FLAG        Flags,
  [in]           ULONG                           ProviderSpecificFlags,
  [in]           PCREATE_VIRTUAL_DISK_PARAMETERS Parameters,
  [in, optional] LPOVERLAPPED                    Overlapped,
  [out]          PHANDLE                         Handle
);

Parameter

[in] VirtualStorageType

Penunjuk ke struktur VIRTUAL_STORAGE_TYPE yang berisi jenis disk dan informasi vendor yang diinginkan.

[in] Path

Penunjuk ke string valid yang mewakili jalur ke file gambar disk virtual baru.

[in] VirtualDiskAccessMask

Nilai VIRTUAL_DISK_ACCESS_MASK untuk digunakan saat membuka file disk virtual yang baru dibuat. Jika anggota Versi parameter Parameter diatur ke CREATE_VIRTUAL_DISK_VERSION_2 maka hanya nilai VIRTUAL_DISK_ACCESS_NONE (0) yang dapat ditentukan.

[in, optional] SecurityDescriptor

Penunjuk opsional ke SECURITY_DESCRIPTOR untuk diterapkan ke file gambar disk virtual. Jika parameter ini NULL, deskriptor keamanan direktori induk akan digunakan.

[in] Flags

Bendera pembuatan, yang harus merupakan kombinasi enumerasi CREATE_VIRTUAL_DISK_FLAG yang valid.

[in] ProviderSpecificFlags

Bendera khusus untuk jenis disk virtual yang sedang dibuat. Mungkin nol jika tidak ada yang diperlukan.

[in] Parameters

Penunjuk ke struktur CREATE_VIRTUAL_DISK_PARAMETERS valid yang berisi data parameter pembuatan.

[in, optional] Overlapped

Penunjuk opsional ke struktur TUMPANG TINDIH yang valid jika operasi asinkron diinginkan.

[out] Handle

Penunjuk ke objek handel yang mewakili disk virtual yang baru dibuat.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan ERROR_SUCCESS dan parameter Handle berisi pointer 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

Jika fungsi CreateVirtualDisk gagal dengan nilai kode kesalahan ERROR_INVALID_PARAMETER, penyebabnya mungkin karena salah satu kondisi berikut:

  • Parameter VirtualStorageType adalah NULL.
  • Parameter Parameter adalah NULL.
  • Anggota versi parameter Parameter tidak diatur ke CREATE_VIRTUAL_DISK_VERSION_1 atau CREATE_VIRTUAL_DISK_VERSION_2.
  • Anggota versi parameter Parameter diatur ke CREATE_VIRTUAL_DISK_VERSION_2 tetapi parameter VirtualDiskAccessMask tidak diatur ke VIRTUAL_DISK_ACCESS_NONE.
  • Anggota BlockSizeInBytes dari parameter Parameter tidak diatur ke CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_BLOCK_SIZE (0), 0x80000 (512 KB), atau 0x200000 (2 MB).
  • Anggota MaximumSize dari parameter Parameter kurang dari 3 MB.
  • Anggota MaximumSize dari parameter Parameter tidak selaras dengan nilai anggota SectorSizeInBytes .
  • Parameter VirtualDiskAccessMask diatur ke nilai (VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL).
  • Parameter Bendera lebih besar dari CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION.
Volume host yang berisi file gambar disk virtual baru tidak dapat dikompresi atau EFS dienkripsi.

Saat membuat berbagai jenis disk virtual, kombinasi parameter pembuatan berikut direkomendasikan:

  • Bendera CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION harus ditentukan.
  • ParentPath tidak boleh ditentukan.
  • SourcePath dapat ditentukan jika diinginkan.
  • Bendera CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION tidak boleh ditentukan.
  • ParentPath tidak boleh ditentukan.
  • SourcePath dapat ditentukan jika diinginkan.
  • Bendera CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION tidak boleh ditentukan.
  • ParentPath harus ditentukan.
  • SourcePath tidak boleh ditentukan.
Fungsi CreateVirtualDisk juga dapat digunakan sebagai mekanisme untuk mengonversi satu jenis disk virtual ke disk virtual lainnya, atau disk fisik ke disk virtual. Ini dicapai melalui penggunaan anggota SourcePath dari struktur CREATE_VIRTUAL_DISK_PARAMETERS untuk mengisi disk virtual baru terlebih dahulu dengan data blok dari disk sumber.

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

OpenVirtualDisk

Referensi VHD