BackupShutdown 이벤트 처리
백업 애플리케이션(요청자)이 BackupComplete 이벤트를 생성하지 않고 종료할 수 있습니다. 백업 애플리케이션이 충돌하거나 종료될 수 있으며(예: 작업 관리자에서) IVssBackupComponents::BackupComplete를 호출할 수 없습니다.
따라서 요청자가 아닌 VSS 인프라는 백업에 참여하는 IVssBackupComponents의 instance 해제될 때마다 요청자 또는 시스템에 의해 릴리스될 때마다 BackupShutdown 이벤트를 생성합니다.
백업이 제대로 진행되면 기록기는 BackupComplete 이벤트와 BackupShutdown 이벤트를 받게 됩니다.
작업이 중단되거나(요청자가 IVssBackupComponents::AbortBackup을 호출하여 Abort 이벤트를 생성함) 갑자기 실패하는 경우 기록기는 BackupShutdown 이벤트만 수신할 수 있으며 정리 작업을 수행하는 다른 이벤트를 받지 못할 수 있습니다. BackupShutdown 이벤트가 적절한 이벤트 시퀀스를 따르는지 또는 백업 작업의 예기치 않은 실패를 나타내는지 여부를 결정하는 것은 기록기에 달려 있습니다.
BackupShutdown 이벤트 처리기 인 CVssWriter::OnBackupShutdown은 종료 중인 백업 작업의 섀도 복사본 집합의 GUID(VSS_ID)를 받습니다. 작성기는 CVssWriter::GetCurrentSnapshotSetId를 사용하여 백업 시퀀스 중에 섀도 복사본 집합 ID를 저장한 경우(예: CVssWriter::OnFreeze, CVssWriter::OnThaw 또는 CVssWriter::OnPostSnapshot) 종료 중인 백업 작업을 확인할 수 있습니다.
그러나 작성기는 CVssWriter::OnBackupShutdown 내에서 CVssWriter::GetCurrentSnapshotSetId를 호출해서는 안 됩니다. 또한 CVssWriter::OnPostSnapshot 이 반환된 후에는 CVssWriter::GetCurrentSnapshotSetId를 호출할 수 없습니다.
기록기가 여러 백업 작업에 참여할 수 있으며 요청자의 갑작스러운 종료로 인해 BackupShutdown 이벤트가 호출되는 경우 반환된 VSS_ID 기록기가 참여했던 다른 백업 작업의 작업일 수 있습니다.