Partager via


Méthode IVdsVolumePlex::Repair (vds.h)

[À compter de Windows 8 et Windows Server 2012, l’interface COM du service de disque virtuel est remplacée par l’API Gestion du stockage Windows.]

Répare un plex de volume tolérant aux pannes en déplaçant les membres défectueux vers de bons disques.

Syntaxe

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

Paramètres

[in] pInputDiskArray

Pointeur vers un tableau de structures VDS_INPUT_DISK , une structure pour chaque disque.

Note Incluez uniquement les membres requis de cette structure (diskId et ullSize).
 
Windows Server 2003 : seuls les volumes qui sont rayés avec la parité (RAID-5) peuvent être réparés avec cette méthode, et un seul nouveau disque peut être passé à cette méthode à la fois.

[in] lNumberOfDisks

Nombre total de disques dans le volume.

[out] ppAsync

Adresse d’un pointeur d’interface IVdsAsync , que VDS initialise au retour. Les appelants doivent libérer l’interface. Utilisez ce pointeur pour annuler, attendre ou interroger l’état de l’opération.

Si vous appelez IVdsAsync::Wait sur cette méthode et qu’une valeur HRESULT de réussite est retournée, vous devez libérer les interfaces retournées dans la structure VDS_ASYNC_OUTPUT en appelant la méthode IUnknown::Release sur chaque pointeur d’interface. Toutefois, si Wait retourne une valeur HRESULT d’échec ou si le paramètre pHrResult de Wait reçoit une valeur HRESULT d’échec, les pointeurs d’interface dans la structure VDS_ASYNC_OUTPUT sont NULL et n’ont pas besoin d’être libérés. Vous pouvez tester la réussite ou l’échec des valeurs HRESULT à l’aide des macros SUCCEEDED et FAILED définies dans Winerror.h.

Valeur retournée

Cette méthode peut retourner des valeurs HRESULT standard, telles que E_INVALIDARG ou E_OUTOFMEMORY, et des valeurs de retour spécifiques à VDS. Il peut également retourner des codes d’erreur système convertis à l’aide de la macro HRESULT_FROM_WIN32 . Les erreurs peuvent provenir de VDS lui-même ou du fournisseur VDS sous-jacent utilisé. Les valeurs de retour possibles sont les suivantes.

Code/valeur de retour Description
S_OK
La réparation s’est terminée avec succès.
E_NOTIMPL
L’appelant a tenté de réparer le plex d’un volume de base, qui est toujours sain et n’a jamais besoin de réparation.
VDS_E_REPAIR_VOLUMESTATE
0x80042460L
Le plex ou le volume n’est pas accessible. En outre, cette erreur peut être retournée lorsque l’état d’un plex n’est pas l’un des éléments suivants : échec de la redondance, échec de la redondance ou échec de la redondance.
VDS_E_DISK_IN_USE_BY_VOLUME
0x8004244CL
Une ou plusieurs étendues du disque sont déjà utilisées par le volume.
VDS_E_VOLUME_INCOMPLETE
0x80042432L
Le volume manque un ou plusieurs membres ou est en quelque sorte incomplet.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête vds.h
Bibliothèque Uuid.lib

Voir aussi

IVdsAsync

IVdsAsync::Wait

IVdsVolumePlex

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK