IVdsVolume::Metode penyusutan (vds.h)

[Dimulai dengan Windows 8 dan Windows Server 2012, antarmuka COM Layanan Disk Virtual digantikan oleh WINDOWS Storage Management API.]

Mengurangi ukuran volume dan semua pleks, dan mengembalikan jangkauan yang dirilis ke ruang kosong.

Sintaks

HRESULT Shrink(
  [in]  ULONGLONG ullNumberOfBytesToRemove,
  [out] IVdsAsync **ppAsync
);

Parameter

[in] ullNumberOfBytesToRemove

Ukuran pengurangan byte.

[out] ppAsync

Alamat penunjuk antarmuka IVdsAsync . VDS menginisialisasi antarmuka yang dikembalikan. Penelepon harus merilis antarmuka. Gunakan antarmuka ini untuk membatalkan, menunggu, atau mengkueri status operasi. Jika IVdsAsync::Wait dipanggil dan nilai HRESULT berhasil dikembalikan, antarmuka yang dikembalikan dalam struktur VDS_ASYNC_OUTPUT harus dirilis dengan memanggil metode IUnknown::Release pada setiap penunjuk antarmuka. Namun, jika Wait mengembalikan nilai HRESULT kegagalan, atau jika parameter pHrResultWait menerima nilai HRESULT kegagalan, penunjuk antarmuka dalam struktur VDS_ASYNC_OUTPUT adalah NULL dan tidak perlu dirilis. Anda dapat menguji keberhasilan atau kegagalan nilai HRESULT dengan menggunakan makro BERHASIL dan GAGAL yang ditentukan dalam Winerror.h.

Mengembalikan nilai

Metode ini dapat mengembalikan nilai HRESULT standar, seperti E_INVALIDARG atau E_OUTOFMEMORY, dan nilai pengembalian khusus VDS. Ini juga dapat mengembalikan kode kesalahan sistem yang dikonversi menggunakan makro HRESULT_FROM_WIN32 . Kesalahan dapat berasal dari VDS itu sendiri atau dari penyedia VDS yang mendasar yang sedang digunakan. Kemungkinan nilai yang dikembalikan termasuk yang berikut ini.

Mengembalikan kode/nilai Deskripsi
S_OK
Metode berhasil diselesaikan.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Cache penyedia rusak. Ini menunjukkan masalah perangkat lunak atau komunikasi di dalam penyedia yang menyimpan informasi tentang perangkat yang terpasang. Pemanggil dapat menggunakan metode IVdsHwProvider::Reenumerate diikuti dengan metode IVdsHwProvider::Refresh untuk memulihkan cache.
VDS_E_CANNOT_SHRINK
0x8004251EL
Volume tidak dapat disusutkan karena sistem file tidak mendukungnya.
VDS_E_DISK_REMOVEABLE
0x8004255AL
Operasi ini tidak didukung pada media yang bisa dilepas.
VDS_E_SHRINK_SIZE_LESS_THAN_MIN
0x80042573L
Ukuran penyusutan yang ditentukan kurang dari ukuran penyusutan minimum yang diizinkan.
VDS_E_SHRINK_SIZE_TOO_BIG
0x80042574L
Ukuran penyusutan yang ditentukan terlalu besar dan akan menyebabkan volume lebih kecil dari ukuran volume minimum.

Keterangan

Metode ini adalah pembungkus untuk metode IVdsVolumeShrink::Shrink . Jika Anda memanggil IVdsVolume::Shrink, nilai parameter uNumberOfBytesToRemove digunakan untuk parameter ullDesiredNumberOfReclaimableBytes dan ullMinNumberOfReclaimableBytes dari IVdsVolumeShrink::Shrink.

Operasi penyusutan dan perluasan hanya didukung pada volume NTFS dan RAW.

Gunakan metode ini untuk menyusutkan sistem dan volume file. Jika VDS gagal menyusutkan volume, VDS akan menghentikan operasi tanpa menyusutkan sistem file.

Hanya satu operasi penyusutan atau defragmentasi yang dapat dilakukan pada satu waktu pada setiap volume. Windows Server 2008 dan Windows Vista: Hanya satu operasi penyusutan atau defragmentasi yang dapat dilakukan pada satu waktu pada komputer.

Jika uNumberOfBytesToRemove adalah nol, metode gagal. Jika tidak, VDS membulatkan uNumberOfBytesToRemove ke kelipatan ukuran kluster sistem file.

Pelaksana harus mengembalikan pointer ke antarmuka IVdsAsync untuk metode ini, bahkan jika panggilan tidak memulai operasi asinkron.

Anda dapat menggunakan metode IVdsVolumeShrink::QueryMaxReclaimableBytes untuk memperkirakan jumlah byte yang akan diklaim kembali oleh operasi penyusutan. Namun, QueryMaxReclaimableBytes dapat mengembalikan lebih banyak byte daripada yang sebenarnya tersedia.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header vds.h
Pustaka Uuid.lib

Lihat juga

IVdsAsync

IVdsVolume

IVdsVolume::Extend