Condividi tramite


Metodo IVssProviderCreateSnapshotSet::CommitSnapshots (vsprov.h)

Il metodo CommitSnapshots esegue rapidamente il commit di tutti i LUN in questo provider.

Sintassi

HRESULT CommitSnapshots(
  [in] VSS_ID SnapshotSetId
);

Parametri

[in] SnapshotSetId

Il VSS_ID che identifica il set di copie shadow.

Valore restituito

Codice/valore restituito Descrizione
S_OK
0x0000000L
L'operazione è stata completata correttamente.
E_OUTOFMEMORY
0x8007000EL
Memoria insufficiente o altre risorse di sistema.
E_INVALIDARG
0x80070057L
Uno dei valori dei parametri non è valido.
VSS_E_OBJECT_NOT_FOUND
0x80042308L
Il parametro SnapshotSetId fa riferimento a un oggetto non trovato.
VSS_E_PROVIDER_VETO
0x80042306L
Si è verificato un errore imprevisto del provider. Il provider deve registrare i dettagli di questo errore nel registro eventi dell'applicazione.
 

Se viene restituito un altro valore, VSS scriverà un evento nel registro eventi e convertirà l'errore in VSS_E_UNEXPECTED_PROVIDER_ERROR.

Commenti

Questo metodo viene chiamato al momento definito in cui devono essere acquisite le copie shadow. Per ogni LUN preparato in questo set di copie shadow, il provider eseguirà il lavoro necessario per rendere persistente il contenuto LUN temporizzato. Durante l'esecuzione di questo metodo, sia le applicazioni che il sottosistema di I/O sono in gran parte inescenti. Il provider deve ridurre al minimo la quantità di tempo impiegato in questo metodo. Come regola generale, il completamento di questo metodo deve richiedere meno di un secondo. Questo metodo viene chiamato durante la finestra Scaricamento e blocco e il supporto del kernel VSS annulla scarica e mantiene se la versione non viene ricevuta entro 10 secondi, causando l'esito negativo del processo di creazione della copia shadow da parte del Servizio Copia Shadow. Se ogni provider richiede più di un secondo o due per completare questa chiamata, è probabile che l'intera creazione della copia shadow avrà esito negativo.

Poiché il sistema di I/O è inattivo, il provider deve prestare attenzione a non avviare alcun I/O perché potrebbe deadlockare il sistema, ad esempio l'I/O di debug o la traccia tramite questo metodo o qualsiasi chiamata effettuata da questo metodo. I file mappati alla memoria e l'I/O di paging non verranno bloccati in questo momento.

Si noti che il sistema di I/O è in modalità inescente solo durante l'esecuzione di questo metodo. Immediatamente dopo il completamento del metodo CommitSnapshots dell'ultimo provider, il servizio Vss rilascia tutte le scritture in sospeso nei LUN di origine. Se il provider esegue una sincronizzazione dei LUN di copia shadow e di origine, questa sincronizzazione deve essere completata prima che il metodo CommitSnapshots del provider restituisca; non può essere eseguita in modo asincrono.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vsprov.h

Vedi anche

IVssProviderCreateSnapshotSet