Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengurangi ukuran file penyimpanan cadangan hard disk virtual (VHD).
Sintaks
DWORD CompactVirtualDisk(
[in] HANDLE VirtualDiskHandle,
[in] COMPACT_VIRTUAL_DISK_FLAG Flags,
[in, optional] PCOMPACT_VIRTUAL_DISK_PARAMETERS Parameters,
[in, optional] LPOVERLAPPED Overlapped
);
Parameter
[in] VirtualDiskHandle
Handel ke disk virtual terbuka, yang harus dibuka menggunakan bendera VIRTUAL_DISK_ACCESS_METAOPS di parameter VirtualDiskAccessMask yang diteruskan ke OpenVirtualDisk. Untuk informasi tentang cara membuka disk virtual, lihat fungsi OpenVirtualDisk .
[in] Flags
Harus berupa nilai COMPACT_VIRTUAL_DISK_FLAG_NONE (0) dari enumerasi COMPACT_VIRTUAL_DISK_FLAG .
[in, optional] Parameters
Penunjuk opsional ke struktur COMPACT_VIRTUAL_DISK_PARAMETERS valid yang berisi data parameter pemadatan.
[in, optional] Overlapped
Penunjuk opsional ke struktur TUMPANG TINDIH yang valid jika operasi asinkron diinginkan.
Nilai kembali
Status permintaan.
Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS.
Jika fungsi gagal, nilai yang dikembalikan adalah kode kesalahan. Untuk informasi selengkapnya, lihat Kode Kesalahan Sistem.
Keterangan
Pemadatan hanya dapat dijalankan pada disk virtual yang dapat diperluas atau berbeda secara dinamis.
Ada dua jenis pemadatan yang berbeda.
- Jenis pertama, pemadatan yang sadar sistem file, menggunakan sistem file NTFS untuk menentukan ruang kosong. Ini dilakukan dengan melampirkan VHD sebagai perangkat baca-saja dengan menyertakan bendera VIRTUAL_DISK_ACCESS_METAOPS dan VIRTUAL_DISK_ACCESS_ATTACH_RO dalam parameter VirtualDiskAccessMask yang diteruskan ke OpenVirtualDisk, melampirkan VHD dengan memanggil AttachVirtualDisk, dan saat VHD dilampirkan memanggil CompactVirtualDisk. Melepaskan VHD sebelum pemadatan dilakukan dapat menyebabkan pemadatan mengembalikan kegagalan sebelum dilakukan (mirip dengan pembatalan pemadatan).
- Jenis kedua, pemadatan file-system-agnostic, tidak melibatkan sistem file tetapi hanya mencari blok VHD yang diisi sepenuhnya dengan nol (0). Ini dilakukan dengan menyertakan bendera VIRTUAL_DISK_ACCESS_METAOPS dalam parameter VirtualDiskAccessMask yang diteruskan ke OpenVirtualDisk, dan memanggil CompactVirtualDisk.
Operasi pemadatan pada disk virtual dapat dengan aman terganggu dan dijalankan kembali nanti. Membuka kembali file disk virtual yang telah terganggu dapat mengakibatkan pengurangan ukuran file disk virtual pada saat pembukaan.
Pemadatan dapat intensif CPU dan/atau intensif I/O, tergantung pada seberapa besar disk virtual dan berapa banyak blok yang memerlukan pergerakan.
Fungsi CompactVirtualDisk berjalan pada disk virtual dalam konteks keamanan yang sama dengan pemanggil.
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 |