Compartilhar via


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

[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]

Repara um plex de volume tolerante a falhas movendo membros inválidos para discos bons.

Sintaxe

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

Parâmetros

[in] pInputDiskArray

Ponteiro para uma matriz de estruturas VDS_INPUT_DISK , uma estrutura para cada disco.

Nota Inclua apenas os membros necessários dessa estrutura (diskId e ullSize).
 
Windows Server 2003: somente volumes distribuídos com paridade (RAID-5) podem ser reparados com esse método e apenas um novo disco pode ser passado para esse método por vez.

[in] lNumberOfDisks

O número total de discos no volume.

[out] ppAsync

O endereço de um ponteiro de interface IVdsAsync , que o VDS inicializa no retorno. Os chamadores devem liberar a interface. Use esse ponteiro para cancelar, aguardar ou consultar o status da operação.

Se você chamar IVdsAsync::Wait nesse método e um valor HRESULT de êxito for retornado, você deverá liberar as interfaces retornadas na estrutura VDS_ASYNC_OUTPUT chamando o método IUnknown::Release em cada ponteiro de interface. No entanto, se Wait retornar um valor HRESULT de falha ou se o parâmetro pHrResult de Wait receber um valor HRESULT de falha, os ponteiros de interface na estrutura VDS_ASYNC_OUTPUT serão NULL e não precisarão ser liberados. Você pode testar valores HRESULT com êxito ou falha usando as macros SUCCEEDED e FAILED definidas em Winerror.h.

Retornar valor

Esse método pode retornar valores HRESULT padrão, como E_INVALIDARG ou E_OUTOFMEMORY, e valores retornados específicos do VDS. Ele também pode retornar códigos de erro do sistema convertidos usando a macro HRESULT_FROM_WIN32 . Os erros podem se originar do próprio VDS ou do provedor de VDS subjacente que está sendo usado. Os possíveis valores retornados incluem o seguinte.

Retornar código/valor Descrição
S_OK
O reparo foi concluído com êxito.
E_NOTIMPL
O chamador tentou reparar o plex de um volume básico, que é sempre íntegro e nunca precisa de reparo.
VDS_E_REPAIR_VOLUMESTATE
0x80042460L
O plex ou volume não está acessível. Além disso, esse erro pode ser retornado quando o status de um plex não é um dos seguintes: redundância com falha, redundância com falha ou falha na redundância.
VDS_E_DISK_IN_USE_BY_VOLUME
0x8004244CL
Uma ou mais extensões do disco já estão sendo usadas pelo volume.
VDS_E_VOLUME_INCOMPLETE
0x80042432L
O volume não tem um ou mais membros ou está de alguma forma incompleto.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho vds.h
Biblioteca Uuid.lib

Confira também

IVdsAsync

IVdsAsync::Wait

IVdsVolumePlex

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK