Méthode IVssBackupComponents ::AddAlternativeLocationMapping (vsbackup.h)
La méthode AddAlternativeLocationMapping est utilisée par un demandeur pour indiquer qu’un autre mappage d’emplacement a été utilisé pour restaurer tous les membres d’un jeu de fichiers dans un composant donné.
Syntaxe
HRESULT AddAlternativeLocationMapping(
[in] VSS_ID writerId,
[in] VSS_COMPONENT_TYPE componentType,
[in] LPCWSTR wszLogicalPath,
[in] LPCWSTR wszComponentName,
[in] LPCWSTR wszPath,
[in] LPCWSTR wszFilespec,
[in] bool bRecursive,
[in] LPCWSTR wszDestination
);
Paramètres
[in] writerId
Identificateur global unique (GUID) de la classe writer qui a exporté le composant.
[in] componentType
Type du composant. Les valeurs possibles de ce paramètre sont définies par l’énumération VSS_COMPONENT_TYPE .
[in] wszLogicalPath
Chaîne de caractères larges terminée par null contenant le chemin logique du composant.
Pour plus d’informations, consultez Chemin d’accès logique des composants.
Le chemin logique peut être NULL.
Il n’existe aucune restriction sur les caractères qui peuvent apparaître dans un chemin logique non NULL .
[in] wszComponentName
Chaîne de caractères larges terminée par null contenant le nom du composant.
Il n’existe aucune restriction sur les caractères qui peuvent apparaître dans un chemin logique non NULL .
[in] wszPath
Chaîne de caractères larges terminée par null contenant le chemin d’accès au répertoire qui contenait à l’origine le fichier à déplacer. Ce chemin peut être local sur l’ordinateur VSS, ou il peut s’agir d’un répertoire de partage de fichiers sur un serveur de fichiers distant.
Le chemin d’accès peut contenir des variables d’environnement (par exemple, %SystemRoot%), mais ne peut pas contenir de caractères génériques. Les chemins UNC sont pris en charge.
Il n’est pas nécessaire que le chemin se termine par une barre oblique inverse (« »). Il appartient aux applications qui récupèrent ces informations de case activée.
[in] wszFilespec
Chaîne de caractères larges terminée par null contenant la spécification du fichier d’origine.
Une spécification de fichier ne peut pas contenir de spécifications de répertoire (par exemple, aucune barre oblique inverse), mais peut contenir le ? et * caractères génériques.
[in] bRecursive
Valeur booléenne qui indique si le chemin d’accès spécifié par le paramètre wszPath n’identifie qu’un seul répertoire ou s’il indique une hiérarchie de répertoires à parcourir de manière récursive. Ce paramètre doit être défini sur true si le chemin est traité comme une hiérarchie de répertoires à parcourir de manière récursive, ou false si ce n’est pas le cas.
Pour plus d’informations sur la traversée des dossiers montés, consultez Utilisation des dossiers montés et points d’analyse.
[in] wszDestination
Chaîne de caractères larges terminée par null contenant le nom du répertoire dans lequel le fichier sera déplacé. Ce chemin peut être local sur l’ordinateur VSS, ou il peut s’agir d’un répertoire de partage de fichiers sur un serveur de fichiers distant. Les chemins UNC sont pris en charge.
Valeur retournée
Voici les codes de retour valides pour cette méthode.
Valeur | Signification |
---|---|
|
Ajout du mappage d’emplacement de substitution. |
|
L’une des valeurs de paramètre n’est pas valide. |
|
L’appelant n’a plus de mémoire ou d’autres ressources système. |
|
L’objet de composants de sauvegarde n’est pas initialisé, cette méthode a été appelée pendant une opération de restauration ou cette méthode n’a pas été appelée dans la séquence correcte. |
|
Le document XML n’est pas valide. Pour plus d’informations, consultez le journal des événements. Pour plus d’informations, consultez Gestion des événements et des erreurs sous VSS. |
|
Le composant spécifié n’existe pas. |
|
Erreur inattendue. Le code d’erreur est enregistré dans le fichier journal des erreurs. Pour plus d’informations, consultez Gestion des événements et des erreurs sous VSS.
Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge tant que Windows Server 2008 R2 et Windows 7. E_UNEXPECTED est utilisé à la place. |
Remarques
Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP et Windows Server 2003 : Les partages de fichiers distants ne sont pas pris en charge tant qu’Windows 8 et Windows Server 2012.
Les paramètres writerId, componentType, wszLogicalPath et wszComponentName identifient un composant particulier, et les paramètres wszPath, wszFilespec et bRecursive identifient le jeu de fichiers appartenant à ce composant.
Combinaison de chemin d’accès, spécification de fichier, et l’indicateur de récursivité (wszPath, wszFilespec et bRecursive, respectivement) fourni à AddAlternativeLocationMapping à mapper doit correspondre à celui de l’un des jeux de fichiers ajoutés à un composant à l’aide de IVssCreateWriterMetadata ::AddFilesToFileGroup, IVssCreateWriterMetadata ::AddDatabaseFiles ou IVssCreateWriterMetadata ::AddDatabaseLogFiles.
Étant donné que AddAlternativeLocationMapping est utilisé pour informer un enregistreur qu’un autre emplacement a été utilisé pour restaurer tous les fichiers d’un composant, il ne doit pas être appelé pour les composants ou les fichiers d’un composant qui n’ont pas de mappage d’emplacement différent spécifié.
La valeur de wszPath aura été mappée à wszDestination lors de la restauration ; Toutefois, les noms de fichiers et les sous-répertoires sous le chemin d’accès d’origine conservent leurs mêmes noms.
Une utilisation classique de AddAlternativeLocationMapping pendant la restauration peut être la suivante :
- Récupérez les documents de métadonnées writer stockés à partir du support de sauvegarde et chargez ces informations avec IVssExamineWriterMetadata ::LoadFromXML.
- Appelez IVssExamineWriterMetadata ::GetAlternateLocationMapping pour obtenir une interface IVssWMFiledesc avec les informations de mappage et utilisez IVssWMFiledesc ::GetAlternateLocation pour obtenir l’autre emplacement.
- Examinez les informations filedesc pour déterminer de manière heuristique le composant auquel ce mappage d’emplacement alternatif doit être appliqué.
- Appelez IVssBackupComponents ::AddAlternativeLocationMapping pour communiquer où les fichiers ont été restaurés.
- La méthode de restauration (définie au moment de la sauvegarde) est VSS_RME_RESTORE_TO_ALTERNATE_LOCATION.
- Sa cible de restauration a été définie (au moment de la restauration) sur VSS_RT_ALTERNATE.
Un fichier peut être restauré dans un autre mappage d’emplacement si l’une des conditions suivantes est remplie :
- La méthode de restauration est VSS_RME_RESTORE_IF_NOT_THERE et une version du fichier est déjà présente sur le disque.
- La méthode de restauration est VSS_RME_RESTORE_IF_CAN_REPLACE et une version du fichier est présente sur le disque et ne peut pas être remplacée.
Un autre mappage d’emplacement est utilisé uniquement pendant une opération de restauration et ne doit pas être confondu avec un autre chemin, qui est utilisé uniquement pendant une opération de sauvegarde.
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 | vsbackup.h (inclure VsBackup.h, Vss.h, VsWriter.h) |
Bibliothèque | VssApi.lib |