處理 BackupShutdown 事件
備份應用程式 (要求者) 終止,而不會產生 BackupComplete 事件。 備份應用程式可能會當機,或從工作管理員終止 (,例如) 且無法呼叫 IVssBackupComponents::BackupComplete。
因此,每當參與備份的IVssBackupComponents實例發行時,VSS 基礎結構 (而不是要求者) 產生BackupShutdown事件,無論是由要求者或系統發行。
如果備份正常執行,寫入器會收到 BackupComplete 事件,後面接著 BackupShutdown 事件。
如果作業中止 (要求 者呼叫IVssBackupComponents::AbortBackup) 或突然失敗,則寫入器只能收到 BackupShutdown 事件,而且可能不會收到執行清除作業的其他事件。 由寫入器決定 BackupShutdown 事件是否遵循適當的事件順序,或代表備份作業的非預期失敗。
BackupShutdown 事件處理常式 CVssWriter::OnBackupShutdown會接收正在關閉之備份作業陰影複製集的VSS_ID (GUID) 。 寫入器可以使用這個來判斷要關閉的備份作業,如果已在備份順序期間儲存陰影複製集識別碼 (例如,從 CVssWriter::OnFreeze、 CVssWriter::OnThaw或 CVssWriter::OnPostSnapshot) ,請使用 CVssWriter::GetCurrentSnapshotSetId。
不過,寫入器不應該從CVssWriter::OnBackupShutdown內呼叫CVssWriter::GetCurrentSnapshotSetId。 此外, CVssWriter::GetCurrentSnapshotSetId 無法在 CVssWriter::OnPostSnapshot 傳回之後呼叫。
寫入器可能涉及多個備份作業,而且如果因為要求者的突然關機而呼叫 BackupShutdown 事件,傳回的VSS_ID可能是寫入器參與的另一個備份作業。