Partager via


énumération VSS_RESTOREMETHOD_ENUM (vswriter.h)

L’énumération VSS_RESTOREMETHOD_ENUM est utilisée par un enregistreur au moment de la sauvegarde pour spécifier par le biais de son document de métadonnées de l’enregistreur la méthode de restauration de fichier par défaut à utiliser avec tous les fichiers de tous les composants qu’il gère.

La méthode de restauration est à l’échelle de l’enregistreur et est également appelée cible de restauration d’origine et indiquée par une valeur VSS_RESTORE_TARGETde VSS_RT_ORIGINAL.

Syntax

typedef enum VSS_RESTOREMETHOD_ENUM {
  VSS_RME_UNDEFINED = 0,
  VSS_RME_RESTORE_IF_NOT_THERE,
  VSS_RME_RESTORE_IF_CAN_REPLACE,
  VSS_RME_STOP_RESTORE_START,
  VSS_RME_RESTORE_TO_ALTERNATE_LOCATION,
  VSS_RME_RESTORE_AT_REBOOT,
  VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE,
  VSS_RME_CUSTOM,
  VSS_RME_RESTORE_STOP_START
} ;

Constantes

 
VSS_RME_UNDEFINED
Valeur : 0
Aucune méthode de restauration n’est définie.


Cela indique une erreur de la part de l’enregistreur.

Cette valeur n’est pas prise en charge pour les rédacteurs express.
VSS_RME_RESTORE_IF_NOT_THERE
Le demandeur doit restaurer les fichiers d’un composant ou d’un jeu de composants sélectionnés uniquement s’il n’existe aucune version de
les fichiers actuellement sur le disque.


Sauf si d’autres mappages d’emplacement sont définis pour la restauration des fichiers, si une version d’un fichier géré par un
le composant ou l’ensemble de composants sélectionnés se trouve actuellement sur le disque, aucun des fichiers gérés par le composant sélectionné
le composant ou l’ensemble de composants doit être restauré.

Si le mappage d’un autre emplacement d’un fichier est défini et qu’une version des fichiers est présente sur le disque au niveau du
Emplacement d’origine, les fichiers doivent être écrits à l’autre emplacement uniquement si aucune version du fichier n’existe à l’adresse
autre emplacement.
VSS_RME_RESTORE_IF_CAN_REPLACE
Le demandeur doit restaurer les fichiers d’un composant ou d’un jeu de composants sélectionné uniquement si les fichiers actuellement sur le disque peuvent être remplacés.


Sauf si des mappages d’emplacements alternatifs sont définis pour la restauration de fichiers, s’il existe une version d’un fichier qui
ne peut pas être remplacé du composant ou de l’ensemble de composants sélectionné sur le disque, aucun des fichiers gérés par le
le composant ou l’ensemble de composants doit être restauré.

Si le mappage d’un autre emplacement d’un fichier est défini, les fichiers doivent être écrits dans l’autre emplacement.
VSS_RME_STOP_RESTORE_START
Le demandeur doit effectuer l’opération de restauration comme suit :


  1. Envoyez l’événement PreRestore et attendez que tous les rédacteurs le traitent.

  2. Arrête le service.

  3. Restaurez les fichiers à leur emplacement d’origine.

  4. Redémarrez le service.

  5. Envoyez l’événement PostRestore et attendez que tous les rédacteurs le traitent.


Le service à arrêter est spécifié au préalable lors de l’appel de la méthode IVssCreateWriterMetadata ::SetRestoreMethod . Le demandeur peut obtenir le nom du service en appelant la méthode IVssExamineWriterMetadata ::GetRestoreMethod .

Notez que si l’enregistreur est hébergé dans le service en cours d’arrêt, celui-ci ne recevra pas l’événement PostRestore, car l’ID instance writer change lorsque le service est arrêté et redémarré.
VSS_RME_RESTORE_TO_ALTERNATE_LOCATION
Le demandeur doit restaurer les fichiers du composant ou du jeu de composants sélectionnés à l’emplacement spécifié par le
autre mappage d’emplacement spécifié dans le fichier de métadonnées du composant writer. (Consultez
IVssCreateWriterMetadata ::AddAlternateLocationMapping,
IVssComponent ::GetAlternateLocationMapping,
IVssExamineWriterMetadata ::GetAlternateLocationMapping,
et IVssWMFiledesc ::GetAlternateLocation.)

Cette valeur n’est pas prise en charge pour les rédacteurs express.
VSS_RME_RESTORE_AT_REBOOT
Le demandeur doit restaurer les fichiers d’un composant ou d’un jeu de composants sélectionné après le redémarrage de l’ordinateur.


Les fichiers à restaurer doivent être copiés dans un emplacement temporaire, et le demandeur doit utiliser
MoveFileEx avec le
MOVEFILE_DELAY_UNTIL_REBOOT indicateur pour terminer la restauration de ces fichiers dans leur
emplacement approprié après le redémarrage de l’ordinateur.
VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE
Si possible, le demandeur doit restaurer les fichiers du composant ou du composant sélectionné à leur niveau correct.
emplacement immédiatement.


S’il existe des versions de l’un des fichiers gérés par le composant ou le composant sélectionné défini sur le disque qui
ne peut pas être remplacé, tous les fichiers gérés par le composant ou l’ensemble de composants sélectionnés doivent être restaurés
après le redémarrage de l’ordinateur.

Dans ce cas, les fichiers à restaurer doivent être copiés dans un emplacement temporaire sur le disque, et le demandeur doit
utiliser MoveFileEx avec le
MOVEFILE_DELAY_UNTIL_REBOOT indicateur pour terminer la restauration de ces fichiers dans leur
emplacement approprié après le redémarrage de l’ordinateur.
VSS_RME_CUSTOM
Le demandeur doit utiliser une méthode de restauration personnalisée pour restaurer les fichiers gérés par le sélectionné
composant ou jeu de composants.


Une restauration personnalisée peut utiliser des fonctions d’API de récupération de fichiers ou des protocoles qui sont privés à un enregistreur donné
application Aha!. Une telle restauration n’a pas besoin d’utiliser les informations du fichier de métadonnées du composant writer. (Consultez
Sauvegardes et restaurations personnalisées pour plus d’informations
information.)

Cette valeur n’est pas prise en charge pour les rédacteurs express.
VSS_RME_RESTORE_STOP_START
Le demandeur doit effectuer l’opération de restauration comme suit :


  1. Envoyez l’événement PreRestore et attendez que tous les rédacteurs le traitent.

  2. Restaurez les fichiers à leur emplacement d’origine.

  3. Envoyez l’événement PostRestore et attendez que tous les rédacteurs le traitent.

  4. Arrête le service.

  5. Redémarrez le service.


Le service à arrêter est spécifié par l’enregistreur au préalable lorsqu’il appelle la méthode IVssCreateWriterMetadata ::SetRestoreMethod . Le demandeur peut obtenir le nom du service en appelant la méthode IVssExamineWriterMetadata ::GetRestoreMethod .

Remarques

Un writer définit la méthode de restauration dans le document de métadonnées writer en appelant IVssCreateWriterMetadata ::SetRestoreMethod pendant la sauvegarde pour spécifier la méthode de restauration souhaitée dans ses métadonnées.

Un demandeur récupère la méthode de restauration demandée d’un writer en appelant IVssExamineWriterMetadata ::GetRestoreMethod et agit en conséquence.

La méthode de restauration s’applique à tous les fichiers dans tous les composants d’un writer donné.

La méthode de restauration peut être remplacée par composant au moment de la restauration si un enregistreur définit une valeur VSS_RESTORE_TARGET autre que VSS_RT_ORIGINAL avec IVssComponent ::SetRestoreTarget.

Une méthode de restauration de VSS_RME_RESTORE_TO_ALTERNATE_LOCATION sans mappage d’emplacement de remplacement défini constitue une erreur d’enregistreur, et le demandeur doit la signaler en tant que telle.

Lorsqu’une méthode de restauration nécessite une case activée sur l’status de fichiers actuellement sur disque (VSS_RME_RESTORE_IF_NOT_THERE, VSS_RME_RESTORE_IF_CAN_REPLACE ou VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE), dans l’idéal, vous devez utiliser des opérations d’E/S de fichier pour vérifier qu’un composant entier peut être restauré avant de procéder à la restauration.

La méthode la plus sûre consiste à ouvrir exclusivement (sans partage) tous les fichiers cibles avec CreateFile avant la restauration.

Dans le cas de VSS_RME_RESTORE_IF_NOT_THERE, un indicateur de disposition de création de CREATE_NEW doit également être défini.

Si les opérations d’ouverture réussissent, la restauration peut se poursuivre et doit utiliser les handles retournés par CreateFile pour écrire réellement les données restaurées sur le disque.

Si ce n’est pas le cas, une erreur peut être retournée (en fonction de la méthode) ou un autre mappage d’emplacement vérifié et (s’il est disponible) utilisé, ou les fichiers de composants intermédiaires pour la restauration au prochain redémarrage.

Cela peut être un problème pour les composants très volumineux (dont certains peuvent contenir des milliers de fichiers), en raison de la surcharge du système.

Dans ce cas, une option disponible bien que moins fiable consiste à effectuer les opérations suivantes :

  1. Copiez tous les fichiers actuellement sur le disque et à restaurer dans un cache temporaire.
  2. Essayez de remplacer les fichiers actuellement sur le disque par les fichiers sauvegardés (qui peuvent être sur le disque dans une deuxième zone temporaire ou sur un support de sauvegarde).
  3. Si des fichiers ne parviennent pas à être restaurés, arrêtez l’opération de restauration et copiez les fichiers d’origine à partir de leur emplacement temporaire, puis procédez à un autre mappage d’emplacement ou à la restauration lors des opérations de redémarrage.
Pour plus d’informations sur les emplacements des fichiers de sauvegarde et de restauration sous VSS, consultez Emplacements de sauvegarde et de restauration non par défaut.

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]
En-tête vswriter.h

Voir aussi

IVssBackupComponents ::AddAlternativeLocationMapping

IVssComponent ::GetAlternateLocationMapping

IVssCreateWriterMetadata ::AddAlternateLocationMapping

IVssCreateWriterMetadata ::SetRestoreMethod

IVssExamineWriterMetadata ::GetAlternateLocationMapping

IVssExamineWriterMetadata ::GetRestoreMethod

IVssWMFiledesc ::GetAlternateLocation

VSS_WRITERRESTORE_ENUM