Partager via


Méthode CVssWriter ::OnBackupComplete (vswriter.h)

La méthode OnBackupComplete est appelée par un enregistreur à la suite d’un événement BackupComplete . Il est utilisé pour effectuer des opérations jugées nécessaires à la suite d’une sauvegarde. Toutefois, ces opérations ne peuvent pas modifier le document composants de sauvegarde.

OnBackupComplete est une méthode virtuelle. Il est implémenté par la classe de base CVssWriter , mais peut être remplacé par des classes dérivées.

Syntaxe

bool OnBackupComplete(
  [in] IVssWriterComponents *pComponent
);

Paramètres

[in] pComponent

Pointeur vers un objet IVssWriterComponents transmis par VSS pour fournir à la méthode l’accès aux informations de composant de l’enregistreur. La valeur de ce paramètre peut être NULL si le demandeur ne prend pas en charge les composants (si CVssWriter ::AreComponentsSelected retourne false).

Valeur retournée

Comme implémenté par la classe de base, OnBackupComplete retourne toujours true.

Toute autre implémentation de cette méthode doit retourner true , sauf en cas d’erreur irrécupérable. Si une erreur irrécupérable se produit, la méthode doit appeler la méthode CVssWriter ::SetWriterFailure pour fournir une description de l’échec avant de retourner false. Si une erreur non fatale se produit, la méthode doit toujours appeler SetWriterFailure , mais retourner true. Si l’erreur est provoquée par un problème temporaire, la méthode doit spécifier VSS_E_WRITERERROR_RETRYABLE dans l’appel à SetWriterFailure.

Dans tous les cas où une défaillance se produit, la méthode doit écrire un événement dans le journal des événements pour signaler la raison exacte de l’échec.

Remarques

L’implémentation par défaut de cette méthode par la classe de base CVssWriter retourne true sans effectuer d’autre opération.

Si des opérations spéciales doivent être effectuées par l’enregistreur à la fin d’une sauvegarde, l’implémentation par défaut peut être remplacée.

Avec la génération d’un événement BackupComplete , le document des composants de sauvegarde d’un demandeur devient un document en lecture seule. Par conséquent, les tentatives de modification du document via l’interface (pour instance, en appelant IVssComponent ::SetBackupMetadata) échouent dans les implémentations utilisateur de OnBackupComplete.

Une application de sauvegarde réussie génère un événement BackupComplete lorsque toutes les données ont été enregistrées sur le support de sauvegarde.

Toutefois, il n’y a aucune garantie que l’enregistreur reçoit une notification d’événement BackupComplete , car ceux-ci nécessitent que l’application de sauvegarde termine correctement la sauvegarde ou échoue correctement.

Un événement BackupComplete peut ne pas être généré si l’application de sauvegarde était arrêtée par le système ou manuellement avant la fin de la sauvegarde (pour instance, si l’opération de sauvegarde était suspendue et devait être arrêtée).

Un enregistreur doit conserver les informations d’état afin qu’il puisse suivre si un événement BackupComplete a été envoyé pour un jeu de cliché instantané donné.

Ces informations peuvent être utilisées par le gestionnaire d’événements BackupShutdown d’un enregistreur (CVssWriter ::OnBackupShutdown), qui sera appelé lorsqu’une application de sauvegarde se termine réellement et que ses IVssBackupComponents sont libérés , pour effectuer des opérations de nettoyage en cas d’appel à OnBackupComplete.

Les rédacteurs ne doivent jamais lever d’exception à cette méthode ou à toute autre méthode de rappel CVssWriter(Ex) ::On Xxx .

Si cette méthode appelle la méthode CVssWriterEx2 ::GetSessionId, CVssWriter ::SetWriterFailure ou CVssWriterEx2 ::SetWriterFailureEx , elle doit le faire dans le même thread qui a appelé cette méthode. Pour plus d’informations, consultez Gestion des événements writer.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête vswriter.h (inclure Vss.h, VsWriter.h)
Bibliothèque VssApi.lib

Voir aussi

CVssWriter

CVssWriter ::SetWriterFailure

IVssBackupComponents

IVssWriterComponents