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 tingkat yang dilepaskan ke ruang kosong.

Syntax

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

Parameter-parameternya

[in] ullNumberOfBytesToRemove

Ukuran pengurangan byte.

[out] ppAsync

Alamat penunjuk antarmuka IVdsAsync . VDS menginisialisasi antarmuka saat 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, pointer antarmuka dalam struktur VDS_ASYNC_OUTPUTadalah 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 dasar yang sedang digunakan. Kemungkinan nilai yang dikembalikan termasuk yang berikut ini.

Mengembalikan kode/nilai Description
S_OK
Metode berhasil diselesaikan.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Cache penyedia rusak. Ini menunjukkan perangkat lunak atau masalah 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 dapat 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.

Komentar

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.

Menyusutkan dan memperluas operasi 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 di komputer.

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

Pelaksana harus mengembalikan penunjuk 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 direklamasi 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]
Platform Target Windows
Header vds.h
Library Uuid.lib

Lihat juga

IVdsAsync

IVdsVolume

IVdsVolume::Extend