Condividi tramite


Metodo IVdsVolumePlex::Repair (vds.h)

[A partire da Windows 8 e Windows Server 2012, l'interfaccia COM del servizio disco virtuale viene sostituita dall'API gestione archiviazione di Windows.

Ripristina un volume a tolleranza di errore spostando i membri non validi in dischi validi.

Sintassi

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

Parametri

[in] pInputDiskArray

Puntatore a una matrice di strutture VDS_INPUT_DISK , una struttura per ogni disco.

Nota Includere solo i membri necessari di questa struttura (diskId e ullSize).
 
Windows Server 2003: solo i volumi con striping con parità (RAID-5) possono essere ripristinati con questo metodo e è possibile passare un solo nuovo disco a questo metodo alla volta.

[in] lNumberOfDisks

Numero totale di dischi nel volume.

[out] ppAsync

Indirizzo di un puntatore dell'interfaccia IVdsAsync , che il VDS inizializza sul ritorno. I chiamanti devono rilasciare l'interfaccia. Usare questo puntatore per annullare, attendere o eseguire query sullo stato dell'operazione.

Se si chiama IVdsAsync::Wait su questo metodo e viene restituito un valore HRESULT riuscito, è necessario rilasciare le interfacce restituite nella struttura VDS_ASYNC_OUTPUT chiamando il metodo IUnknown::Release su ogni puntatore dell'interfaccia. Tuttavia, se Wait restituisce un valore HRESULT non riuscito o se il parametro pHrResultdiWait riceve un valore HRESULT non riuscito, i puntatori di interfaccia nella struttura VDS_ASYNC_OUTPUT sono NULL e non devono essere rilasciati. È possibile testare i valori HRESULT di esito positivo o negativo usando le macro SUCCESSED e FAILED definite in Winerror.h.

Valore restituito

Questo metodo può restituire valori HRESULT standard, ad esempio E_INVALIDARG o E_OUTOFMEMORY e valori restituiti specifici di VDS. Può anche restituire codici di errore di sistema convertiti usando la macro HRESULT_FROM_WIN32 . Gli errori possono derivare da VDS stesso o dal provider VDS sottostante usato. I valori restituiti possibili includono quanto segue.

Codice/valore restituito Descrizione
S_OK
La riparazione è stata completata correttamente.
E_NOTIMPL
Il chiamante ha tentato di riparare il plex di un volume di base, che è sempre integro e non ha mai bisogno di riparazione.
VDS_E_REPAIR_VOLUMESTATE
0x80042460L
Il volume o il plex non è accessibile. Questo errore può inoltre essere restituito quando lo stato di un plex non è uno dei seguenti: ridondanza non riuscita, ridondanza non riuscita o ridondanza non riuscita.
VDS_E_DISK_IN_USE_BY_VOLUME
0x8004244CL
Uno o più extent del disco sono già usati dal volume.
VDS_E_VOLUME_INCOMPLETE
0x80042432L
Il volume manca uno o più membri o è in qualche modo incompleto.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vds.h
Libreria Uuid.lib

Vedi anche

IVdsAsync

IVdsAsync::Wait

IVdsVolumePlex

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK