Behandeln von BackupShutdown-Ereignissen
Es ist möglich, dass eine Sicherungsanwendung (anfordernde Anwendung) beendet und kein BackupComplete-Ereignis generiert. Die Sicherungsanwendung kann abstürzen oder beendet werden (z. B. über den Task-Manager) und kann IVssBackupComponents::BackupCompletenicht aufrufen.
Daher generiert die VSS-Infrastruktur (anstelle des Anfordernden) immer dann ein BackupShutdown-Ereignis, wenn eine an einer Sicherung beteiligte Instanz von IVssBackupComponents freigegeben wird, unabhängig davon, ob sie vom Anfordernden oder vom System freigegeben wird.
Wenn eine Sicherung ordnungsgemäß fortgesetzt wird, erhält ein Writer ein BackupComplete-Ereignis gefolgt von einem BackupShutdown-Ereignis.
Wenn der Vorgang abgebrochen wird (der Anfordernde generiert ein Abort-Ereignis durch Aufrufen von IVssBackupComponents::AbortBackup) oder plötzlich einen Fehler verursacht, erhält ein Writer möglicherweise nur ein BackupShutdown-Ereignis und erhält möglicherweise keine anderen Ereignisse, die Bereinigungsvorgänge ausführen. Es liegt in der Hand eines Writers zu bestimmen, ob ein BackupShutdown-Ereignis einer ordnungsgemäßen Abfolge von Ereignissen folgt oder einen unerwarteten Fehler der Sicherungsvorgänge darstellt.
Der BackupShutdown-Ereignishandler CVssWriter::OnBackupShutdownempfängt die VSS-ID (GUID) des Schattenkopiesets des heruntergefahrenen _ Sicherungsvorgang. Der Writer kann mithilfe von CVssWriter::OnFreeze,CVssWriter::OnThaw oder CVssWriter::OnPostSnapshot ) ermitteln, welcher Sicherungsvorgang heruntergefahren wird, wenn er die Schattenkopieset-ID während der Sicherungssequenz gespeichert hat (z. B. aus CVssWriter::OnFreeze, CVssWriter::OnThawoder CVssWriter::OnPostSnapshot).
Ein Writer sollte jedoch nicht CVssWriter::GetCurrentSnapshotSetId aus CVssWriter::OnBackupShutdown aufrufen. Außerdem kann CVssWriter::GetCurrentSnapshotSetId nicht aufgerufen werden, nachdem CVssWriter::OnPostSnapshot zurückgegeben wurde.
Es ist möglich, dass der Writer an mehreren Sicherungsvorgängen beteiligt ist. Wenn ein BackupShutdown-Ereignis aufgrund eines plötzlichen Herunterfahrens eines Anfordernden aufgerufen wird, kann die zurückgegebene VSS-ID die eines anderen Sicherungsvorgang sein, an dem der Writer beteiligt _ war.