Partager via


Méthode IVssCreateWriterMetadata::AddComponentDependency (vswriter.h)

La méthode AddComponentDependency permet à un enregistreur d’indiquer qu’un composant qu’il gère a une dépendance de composant d’écriture explicite ; autrement dit, un autre composant d’un autre enregistreur doit être sauvegardé et restauré avec celui-ci.

Syntaxe

HRESULT AddComponentDependency(
  [in] LPCWSTR wszForLogicalPath,
  [in] LPCWSTR wszForComponentName,
  [in] VSS_ID  onWriterId,
  [in] LPCWSTR wszOnLogicalPath,
  [in] LPCWSTR wszOnComponentName
);

Paramètres

[in] wszForLogicalPath

Chaîne de caractères larges terminée par null contenant le chemin logique du composant (géré par l’enregistreur actuel) qui nécessite une dépendance.

[in] wszForComponentName

Chaîne de caractères larges terminée par null contenant le composant (géré par l’enregistreur actuel) qui nécessite une dépendance.

[in] onWriterId

ID de classe ou VSS_ID (GUID) de l’enregistreur qui gère le composant dont dépend le composant actuel.

[in] wszOnLogicalPath

Chemin logique du composant (géré par l’enregistreur identifié par onWriterId) dont dépend le composant actuel.

[in] wszOnComponentName

Nom du composant (géré par l’enregistreur identifié par onWriterId) dont dépend le composant actuel.

Valeur retournée

Voici les codes de retour valides pour cette méthode.

Valeur Signification
S_OK
L'opération a réussi.
E_INVALIDARG
L’une des valeurs de paramètre n’est pas valide.
E_OUTOFMEMORY
L’appelant n’a pas de mémoire ou d’autres ressources système.
VSS_E_INVALID_XML_DOCUMENT
Le document XML n’est pas valide. Consultez le journal des événements pour plus d’informations. Pour plus d’informations, consultez Gestion des événements et des erreurs sous VSS.
VSS_E_OBJECT_NOT_FOUND
Le composant spécifié par wszForLogicalPath et wszForComponentName n’existe pas.
VSS_E_UNEXPECTED
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

Les dépendances sur les composants gérés par l’enregistreur actuel ne sont pas autorisées.

Une dépendance nécessite que la cible de la dépendance et le composant qui dépend de la cible soient restaurés et sauvegardés ensemble. Il n’indique pas de priorité entre les composants, bien qu’un demandeur puisse choisir de l’implémenter.

Étant donné que la combinaison de nom logique et de nom de composant doit être unique dans toutes les instances d’une classe writer, le fait que plusieurs enregistreurs peuvent avoir le même ID de classe n’est pas un problème.

Cette méthode peut être utilisée pour déclarer des dépendances distantes. Un enregistreur peut déclarer une dépendance distante en déplaçant « \\RemoteComputerName », où RemoteComputerName est le nom de l’ordinateur où réside le composant distant, au chemin logique dans le paramètre wszOnLogicalPath . La valeur de RemoteComputerName peut être une adresse IP ou un nom d’ordinateur retourné par la fonction GetComputerNameEx .

Si le composant distant réside sur un cluster, l’enregistreur doit signaler le nom virtuel du cluster, et il incombe au demandeur de mapper le nom virtuel au nom physique d’un nœud de cluster avant qu’un cliché instantané de volume puisse être créé.

Pour déterminer si une dépendance est locale ou distante, le demandeur doit examiner le nom du composant retourné dans le paramètre pbstrComponentName . Si le nom du composant commence par « \ », le demandeur doit supposer qu’il spécifie une dépendance distante et que le premier composant suivant « \ » est le RemoteComputerName qui a été spécifié par l’enregistreur. Si le nom du composant ne commence pas par « \ », le demandeur doit supposer qu’il spécifie une dépendance locale.

Windows Server 2003 : Cette méthode ne peut pas être utilisée pour déclarer des dépendances distantes avant Windows Server 2003 avec Service Pack 1 (SP1).

Configuration requise

   
Client minimal pris en charge Windows Vista [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