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

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Repara un plex de volumen tolerante a errores moviendo miembros incorrectos a discos buenos.

Sintaxis

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

Parámetros

[in] pInputDiskArray

Puntero a una matriz de estructuras de VDS_INPUT_DISK , una estructura para cada disco.

Nota Incluya solo los miembros necesarios de esta estructura (diskId y ullSize).
 
Windows Server 2003: solo se pueden reparar los volúmenes seccionados con paridad (RAID-5) con este método y solo se puede pasar un disco nuevo a este método a la vez.

[in] lNumberOfDisks

Número total de discos del volumen.

[out] ppAsync

Dirección de un puntero de interfaz IVdsAsync , que VDS inicializa al devolver. Los autores de llamadas deben liberar la interfaz. Use este puntero para cancelar, esperar o consultar el estado de la operación.

Si llama a IVdsAsync::Wait en este método y se devuelve un valor HRESULT correcto, debe liberar las interfaces devueltas en la estructura VDS_ASYNC_OUTPUT llamando al método IUnknown::Release en cada puntero de interfaz. Sin embargo, si Wait devuelve un valor HRESULT de error o si el parámetro pHrResult de Wait recibe un valor HRESULT de error, los punteros de interfaz de la estructura VDS_ASYNC_OUTPUT son NULL y no es necesario liberar. Puede probar los valores HRESULT correctos o erróneos mediante las macros SUCCEEDED y FAILED definidas en Winerror.h.

Valor devuelto

Este método puede devolver valores HRESULT estándar, como E_INVALIDARG o E_OUTOFMEMORY, y valores devueltos específicos de VDS. También puede devolver códigos de error del sistema convertidos mediante la macro HRESULT_FROM_WIN32 . Los errores se pueden originar en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los posibles valores devueltos se incluyen los siguientes.

Código o valor devuelto Descripción
S_OK
La reparación se completó correctamente.
E_NOTIMPL
El autor de la llamada intentó reparar el plex de un volumen básico, que siempre es correcto y nunca necesita reparación.
VDS_E_REPAIR_VOLUMESTATE
0x80042460L
No se puede acceder al plex o volumen. Además, este error se puede devolver cuando el estado de un plex no es uno de los siguientes: error de redundancia, redundancia errónea o error de redundancia.
VDS_E_DISK_IN_USE_BY_VOLUME
0x8004244CL
El volumen ya está usando una o varias extensiones del disco.
VDS_E_VOLUME_INCOMPLETE
0x80042432L
Falta uno o varios miembros o está incompleto de alguna manera.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado vds.h
Library Uuid.lib

Consulte también

IVdsAsync

IVdsAsync::Wait

IVdsVolumePlex

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK