Compartilhar via


Método CVssWriter::OnPostSnapshot (vswriter.h)

O método OnPostSnapshot é chamado por um gravador após um evento PostSnapshot .

OnPostSnapshot é um método virtual. Ele é implementado pela classe base CVssWriter , mas pode ser substituído por classes derivadas.

Sintaxe

bool OnPostSnapshot(
  [in] IVssWriterComponents *pComponent
);

Parâmetros

[in] pComponent

Um ponteiro para um objeto IVssWriterComponents passado pelo VSS para fornecer ao método acesso às informações do componente do gravador. O valor desse parâmetro poderá ser NULL se o solicitante não der suporte a componentes (se CVssWriter::AreComponentsSelected retornar false).

Valor retornado

Conforme implementado pela classe base, OnPostSnapshot sempre retorna true.

Qualquer outra implementação desse método deve retornar true , exceto no caso de um erro fatal. Se ocorrer um erro fatal, o método deverá chamar o método CVssWriter::SetWriterFailure para fornecer uma descrição da falha antes de retornar false. Se ocorrer um erro não fatal, o método ainda deverá chamar SetWriterFailure , mas retornar true. Se o erro for causado por um problema transitório, o método deverá especificar VSS_E_WRITERERROR_RETRYABLE na chamada para SetWriterFailure.

Em todos os casos em que ocorre uma falha, o método deve gravar um evento no log de eventos para relatar o motivo exato da falha.

Comentários

A implementação padrão desse método pela classe base CVssWriter retorna true sem executar nenhuma outra operação.

CVssWriter::OnPostSnapshot normalmente é usado para processar quaisquer atualizações finais pelo gravador para os metadados dos componentes de backup e limpo para cima (como remover arquivos temporários).

Se um backup incremental ou diferencial estiver sendo executado, o gravador poderá chamar IVssComponent::GetPreviousBackupStamp e IVssComponent::SetBackupStamp. Para obter mais informações, consulte Função de gravador no backup de repositórios complexos. Outro método que pode ser chamado no momento é IVssComponent::AddDifferencedFilesByLastModifyTime.

A maior parte do trabalho necessário para retornar o gravador à operação normal (inverter as ações de CVssWriter::OnPrepareSnapshot e CVssWriter::OnFreeze) normalmente é executada em CVssWriter::OnThaw, não em OnPostSnapshot.

Os gravadores nunca devem lançar uma exceção desse método ou de qualquer outro método de retorno de chamada CVssWriter(Ex)::OnXxx .

Se a cópia de sombra tiver o sinalizador VSS_VOLSNAP_ATTR_AUTORECOVER definido no contexto, o gravador deverá executar qualquer recuperação necessária (por exemplo, reverter quaisquer transações incompletas) para que o componente possa ser usado em uma cópia somente leitura para mineração de dados (sem adicionar carga ao servidor ativo) ou restaurar finalidades (por exemplo, para restaurar itens selecionados de um banco de dados).

Para recuperar o nome do volume da cópia de sombra de um volume, execute as seguintes etapas:

  1. Chame o método CVssWriter::GetCurrentVolumeCount para consultar o número de volumes no conjunto de cópias de sombra.
  2. Chame o método CVssWriter::GetCurrentVolumeArray para enumerar os nomes originais dos volumes no conjunto de cópias de sombra.
  3. Chame o CVssWriter::GetSnapshotDeviceName para recuperar o nome do volume de cópia de sombra.
Se esse método chamar o método CVssWriterEx2::GetSessionId, CVssWriter::SetWriterFailure ou CVssWriterEx2::SetWriterFailureEx , ele deverá fazer isso no mesmo thread que chamou esse método. Para obter mais informações, consulte Tratamento de eventos do gravador.

Requisitos

   
Cliente mínimo com suporte Windows XP [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 vswriter.h (inclua Vss.h, VsWriter.h)
Biblioteca VssApi.lib

Confira também

CVssWriter

CVssWriter::GetSnapshotDeviceName

CVssWriter::OnPreRestore

CVssWriter::OnPrepareBackup

CVssWriter::SetWriterFailure

CvssWriter::OnThaw

IVssWriterComponents