Поделиться через


Обработка событий BackupShutdown

Приложение резервного копирования (инициатор запроса) может завершить работу, а не создать событие BackupComplete . Приложение резервного копирования может завершить работу или завершить работу (например, из диспетчера задач) и не сможет вызвать IVssBackupComponents::BackupComplete.

Таким образом, инфраструктура VSS (а не инициатор запроса) создает событие BackupShutdown всякий раз, когда экземпляр IVssBackupComponents, участвующий в резервной копии, освобождается ли он инициатором запроса или системой.

Если резервное копирование выполняется правильно, модуль записи получит событие BackupComplete, за которым следует событие BackupShutdown.

Если операция прерывается (инициатор запроса создает событие Abort путем вызова IVssBackupComponents::AbortBackup) или резко завершается сбоем, модуль записи может получить только событие BackupShutdown и не получать другие события, выполняющие операции очистки. Модуль записи определяет, следует ли событие BackupShutdown правильной последовательности событий или представляет собой непредвиденный сбой операций резервного копирования.

Обработчик событий BackupShutdown CVssWriter::OnBackupShutdown получает VSS_ID (GUID) набора теневых копий завершаемой операции резервного копирования. Модуль записи может использовать этот параметр, чтобы определить, какая операция резервного копирования завершается, если он сохранил идентификатор набора теневых копий во время резервной копии (например, из CVssWriter::OnFreeze, CVssWriter::OnThaw или CVssWriter::OnPostSnapshot) с помощью CVssWriter::GetCurrentSnapshotSetId.

Однако модуль записи не должен вызывать CVssWriter::GetCurrentSnapshotSetId из CVssWriter::OnBackupShutdown. Кроме того, CVssWriter::GetCurrentSnapshotSetId не может вызываться после возврата CVssWriter::OnPostSnapshot .

Модуль записи может участвовать в нескольких операциях резервного копирования, и если событие BackupShutdown вызывается из-за внезапного завершения работы инициатора запроса, то возвращенная VSS_ID может быть другой операцией резервного копирования, в которую принимал участие модуль записи.