Bagikan melalui


IVdsVolumePlex::Metode perbaikan (vds.h)

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

Memperbaiki pleks volume yang toleran terhadap kesalahan dengan memindahkan anggota yang buruk ke disk yang baik.

Sintaks

HRESULT Repair(
  [in]  VDS_INPUT_DISK *pInputDiskArray,
  [in]  LONG           lNumberOfDisks,
  [out] IVdsAsync      **ppAsync
);

Parameter

[in] pInputDiskArray

Penunjuk ke array struktur VDS_INPUT_DISK , satu struktur untuk setiap disk.

Catatan Sertakan hanya anggota yang diperlukan dari struktur ini (diskId dan ullSize).
 
Windows Server 2003: hanya volume yang bergaris dengan paritas (RAID-5) yang dapat diperbaiki dengan metode ini, dan hanya satu disk baru yang dapat diteruskan ke metode ini pada satu waktu.

[in] lNumberOfDisks

Jumlah total disk dalam volume.

[out] ppAsync

Alamat penunjuk antarmuka IVdsAsync , yang diinisialisasi VDS saat dikembalikan. Penelepon harus merilis antarmuka. Gunakan penunjuk ini untuk membatalkan, menunggu, atau mengkueri status operasi.

Jika Anda memanggil IVdsAsync::Wait pada metode ini dan nilai HRESULT yang berhasil dikembalikan, Anda harus merilis antarmuka yang dikembalikan dalam struktur VDS_ASYNC_OUTPUT dengan memanggil metode IUnknown::Release pada setiap pointer 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.

Nilai kembali

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
Perbaikan berhasil diselesaikan.
E_NOTIMPL
Penelepon mencoba memperbaiki pleks volume dasar, yang selalu sehat dan tidak pernah perlu diperbaiki.
VDS_E_REPAIR_VOLUMESTATE
0x80042460L
Pleks atau volume tidak dapat diakses. Selain itu, kesalahan ini dapat dikembalikan ketika status pleks bukan salah satu dari yang berikut: redundansi gagal, redundansi gagal, atau redundansi gagal gagal.
VDS_E_DISK_IN_USE_BY_VOLUME
0x8004244CL
Satu atau beberapa tingkat disk sudah digunakan oleh volume.
VDS_E_VOLUME_INCOMPLETE
0x80042432L
Volume kehilangan satu atau beberapa anggota atau entah kenapa tidak lengkap.

Persyaratan

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

Lihat juga

IVdsAsync

IVdsAsync::Tunggu

IVdsVolumePlex

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK