Gestion des événements BackupShutdown
Il est possible qu’une application de sauvegarde (demandeur) se termine et ne génère pas d’événement BackupComplete . L’application de sauvegarde peut se bloquer ou être arrêtée (à partir du Gestionnaire des tâches, par exemple) et ne pas être en mesure d’appeler IVssBackupComponents::BackupComplete.
Par conséquent, l’infrastructure VSS (plutôt que le demandeur) génère un événement BackupShutdown chaque fois qu’un instance d’IVssBackupComponents participant à une sauvegarde est publié, qu’il soit libéré par le demandeur ou par le système.
Si une sauvegarde se poursuit correctement, un enregistreur reçoit un événement BackupComplete suivi d’un événement BackupShutdown.
Si l’opération abandonne (le demandeur génère un événement Abort en appelant IVssBackupComponents::AbortBackup) ou échoue brusquement, un enregistreur peut recevoir uniquement un événement BackupShutdown et il peut ne pas recevoir d’autres événements qui effectuent des opérations de nettoyage. Il appartient à un enregistreur de déterminer si un événement BackupShutdown suit une séquence d’événements appropriée ou représente un échec inattendu des opérations de sauvegarde.
Le gestionnaire d’événements BackupShutdown, CVssWriter::OnBackupShutdown, reçoit le VSS_ID (GUID) du jeu de cliché instantané de l’opération de sauvegarde en cours d’arrêt. L’enregistreur peut l’utiliser pour déterminer quelle opération de sauvegarde est en cours d’arrêt, s’il a stocké l’ID du jeu de cliché instantané pendant sa séquence de sauvegarde (par exemple, à partir de CVssWriter::OnFreeze, CVssWriter::OnThaw ou CVssWriter::OnPostSnapshot) à l’aide de CVssWriter::GetCurrentSnapshotSetId.
Toutefois, un rédacteur ne doit pas appeler CVssWriter::GetCurrentSnapshotSetId à partir de CVssWriter::OnBackupShutdown. En outre, CVssWriter::GetCurrentSnapshotSetId ne peut pas être appelé après les retours de CVssWriter::OnPostSnapshot .
Il est possible que l’enregistreur soit impliqué dans plusieurs opérations de sauvegarde, et si un événement BackupShutdown est appelé en raison d’un arrêt brusque d’un demandeur, le VSS_ID retourné peut être celui d’une autre opération de sauvegarde à laquelle l’enregistreur a participé.