Manipulando eventos BackupShutdown
É possível que um aplicativo de backup (solicitante) termine e não gere um evento BackupComplete . O aplicativo de backup pode falhar ou ser encerrado (do Gerenciador de Tarefas, por exemplo) e não pode chamar IVssBackupComponents::BackupComplete.
Portanto, a infraestrutura do VSS (em vez do solicitante) gera um evento BackupShutdown sempre que uma instância de IVssBackupComponents que participam de um backup é liberada, seja ela liberada pelo solicitante ou pelo sistema.
Se um backup continuar corretamente, um gravador receberá um evento BackupComplete seguido de um evento BackupShutdown.
Se a operação for anulada (o solicitante gerará um evento Abort chamando IVssBackupComponents::AbortBackup) ou falhará abruptamente, um gravador poderá receber apenas um evento BackupShutdown e poderá não receber outros eventos que executam operações de limpeza. Cabe a um gravador determinar se um evento BackupShutdown segue uma sequência adequada de eventos ou representa uma falha inesperada das operações de backup.
O manipulador de eventos BackupShutdown, CVssWriter::OnBackupShutdown, recebe o guid (VSS_ID) do conjunto de cópias de sombra da operação de backup que está sendo desligada. O gravador pode usar isso para determinar qual operação de backup está sendo desligada, se tiver armazenado a ID do conjunto de cópias de sombra durante sua sequência de backup (por exemplo, de dentro de CVssWriter::OnFreeze, CVssWriter::OnThaw ou CVssWriter::OnPostSnapshot) usando CVssWriter::GetCurrentSnapshotSetId.
No entanto, um gravador não deve chamar CVssWriter::GetCurrentSnapshotSetId de dentro de CVssWriter::OnBackupShutdown. Além disso, CVssWriter::GetCurrentSnapshotSetId não pode ser chamado após o retorno de CVssWriter::OnPostSnapshot .
É possível que o gravador esteja envolvido em várias operações de backup e, se um evento BackupShutdown for chamado devido a um desligamento abrupto de um solicitante, o VSS_ID retornado poderá ser o de outra operação de backup na qual o gravador estava participando.