Share via


IVdsVolumePlex::Repair-Methode (vds.h)

[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts durch die Windows Storage Management-API ersetzt.]

Repariert einen fehlertoleranten Volumeplex, indem schlechte Member auf gute Datenträger verschoben werden.

Syntax

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

Parameter

[in] pInputDiskArray

Zeiger auf ein Array von VDS_INPUT_DISK Strukturen, eine Struktur für jeden Datenträger.

Hinweis Schließen Sie nur die erforderlichen Elemente dieser Struktur ein (diskId und ullSize).
 
Windows Server 2003: Nur Volumes mit Parität (RAID-5) können mit dieser Methode repariert werden, und nur ein neuer Datenträger kann gleichzeitig an diese Methode übergeben werden.

[in] lNumberOfDisks

Die Gesamtzahl der Datenträger im Volume.

[out] ppAsync

Die Adresse eines IVdsAsync-Schnittstellenzeigers , der von VDS bei der Rückgabe initialisiert wird. Aufrufer müssen die Schnittstelle freigeben. Verwenden Sie diesen Zeiger, um den Status des Vorgangs abzubrechen, abzuwarten oder abzufragen.

Wenn Sie IVdsAsync::Wait für diese Methode aufrufen und ein success HRESULT-Wert zurückgegeben wird, müssen Sie die in der VDS_ASYNC_OUTPUT-Struktur zurückgegebenen Schnittstellen freigeben, indem Sie die IUnknown::Release-Methode für jeden Schnittstellenzeiger aufrufen. Wenn Wait jedoch einen Fehler-HRESULT-Wert zurückgibt oder wenn der pHrResult-Parameter von Wait einen Fehler-HRESULT-Wert empfängt, sind die Schnittstellenzeiger in der VDS_ASYNC_OUTPUT Struktur NULL und müssen nicht freigegeben werden. Sie können mit den in Winerror.h definierten Makros SUCCEEDED und FAILED auf Erfolg oder Fehler HRESULT-Werte testen.

Rückgabewert

Diese Methode kann HRESULT-Standardwerte wie E_INVALIDARG oder E_OUTOFMEMORY und VDS-spezifische Rückgabewerte zurückgeben. Es kann auch konvertierte Systemfehlercodes mithilfe des HRESULT_FROM_WIN32-Makros zurückgeben. Fehler können vom VDS selbst oder vom zugrunde liegenden VDS-Anbieter stammen, der verwendet wird. Folgende Rückgabewerte sind möglich.

Rückgabecode/-wert BESCHREIBUNG
S_OK
Die Reparatur wurde erfolgreich abgeschlossen.
E_NOTIMPL
Der Aufrufer hat versucht, den Plex eines Basisvolumes zu reparieren, das immer fehlerfrei ist und nie repariert werden muss.
VDS_E_REPAIR_VOLUMESTATE
0x80042460L
Auf den Plex oder das Volume kann nicht zugegriffen werden. Darüber hinaus kann dieser Fehler zurückgegeben werden, wenn der Status eines Plexs nicht einer der folgenden ist: Fehlerhafte Redundanz, fehlerhafte Redundanz oder Fehler bei Redundanzfehlern.
VDS_E_DISK_IN_USE_BY_VOLUME
0x8004244CL
Mindestens ein Teil des Datenträgers wird bereits vom Volume verwendet.
VDS_E_VOLUME_INCOMPLETE
0x80042432L
Dem Volume fehlt mindestens ein Member oder ist irgendwie unvollständig.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile vds.h
Bibliothek Uuid.lib

Weitere Informationen

IVdsAsync

IVdsAsync::Wait

IVdsVolumePlex

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK