Condividi tramite


Metodo CVssWriter::OnPostSnapshot (vswriter.h)

Il metodo OnPostSnapshot viene chiamato da un writer che segue un evento PostSnapshot .

OnPostSnapshot è un metodo virtuale. Viene implementato dalla classe di base CVssWriter , ma può essere sottoposto a override da classi derivate.

Sintassi

bool OnPostSnapshot(
  [in] IVssWriterComponents *pComponent
);

Parametri

[in] pComponent

Puntatore a un oggetto IVssWriterComponents passato da VSS per fornire al metodo l'accesso alle informazioni del componente del writer. Il valore di questo parametro può essere NULL se il richiedente non supporta i componenti (se CVssWriter::AreComponentsSelected restituisce false).

Valore restituito

Come implementato dalla classe di base, OnPostSnapshot restituisce sempre true.

Qualsiasi altra implementazione di questo metodo deve restituire true tranne nel caso di un errore irreversibile. Se si verifica un errore irreversibile, il metodo deve chiamare il metodo CVssWriter::SetWriterFailure per fornire una descrizione dell'errore prima di restituire false. Se si verifica un errore non irreversibile, il metodo deve comunque chiamare SetWriterFailure ma restituire true. Se l'errore è causato da un problema temporaneo, il metodo deve specificare VSS_E_WRITERERROR_RETRYABLE nella chiamata a SetWriterFailure.

In tutti i casi in cui si verifica un errore, il metodo deve scrivere un evento nel registro eventi per segnalare il motivo esatto dell'errore.

Commenti

L'implementazione predefinita di questo metodo da parte della classe di base CVssWriter restituisce true senza eseguire alcuna altra operazione.

CVssWriter::OnPostSnapshot viene in genere usato per elaborare eventuali aggiornamenti finali dal writer ai metadati dei componenti di backup e pulire (ad esempio la rimozione di file temporanei).

Se viene eseguito un backup incrementale o differenziale, il writer può chiamare IVssComponent::GetPreviousBackupStamp e IVssComponent::SetBackupStamp. Per altre informazioni, vedere Ruolo writer in Backup di archivi complessi. Un altro metodo che può essere chiamato in questo momento è IVssComponent::AddDifferencedFilesByLastModifyTime.

La maggior parte del lavoro necessario per restituire il writer alla normale operazione (invertendo le azioni di CVssWriter::OnPrepareSnapshot e CVssWriter::OnFreeze) viene in genere eseguita in CVssWriter::OnThaw, non in OnPostSnapshot.

I writer non devono mai generare un'eccezione da questo metodo o da qualsiasi altro metodo CVssWriter(Ex)::OnXxx callback.

Se la copia shadow ha il flag VSS_VOLSNAP_ATTR_AUTORECOVER impostato nel contesto, il writer deve eseguire qualsiasi ripristino necessario (ad esempio, eseguire il rollback di tutte le transazioni incomplete) in modo che il componente sia utilizzabile in una copia di sola lettura per il data mining (senza aggiungere carico al server attivo) o scopi di ripristino (ad esempio, per ripristinare gli elementi selezionati da un database).

Per recuperare il nome del volume della copia shadow di un volume, seguire questa procedura:

  1. Chiamare il metodo CVssWriter::GetCurrentVolumeCount per eseguire una query sul numero di volumi nel set di copia shadow.
  2. Chiamare il metodo CVssWriter::GetCurrentVolumeArray per enumerare i nomi originali dei volumi nel set di copia shadow.
  3. Chiamare CVssWriter::GetSnapshotDeviceName per recuperare il nome del volume di copia shadow.
Se questo metodo chiama il metodo CVssWriterEx2::GetSessionId, CVssWriter::SetWriterFailure o CVssWriterEx2::SetWriterFailureEx , deve farlo nello stesso thread denominato questo metodo. Per altre informazioni, vedere Gestione eventi writer.

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vswriter.h (include Vss.h, VsWriter.h)
Libreria VssApi.lib

Vedi anche

CVssWriter

CVssWriter::GetSnapshotDeviceName

CVssWriter::OnPreRestore

CVssWriter::OnPrepareBackup

CVssWriter::SetWriterFailure

CvssWriter::OnThaw

IVssWriterComponents