Partager via


Méthode IVdsLun ::AssociateControllers (vds.h)

[À compter de Windows 8 et Windows Server 2012, l’interface COM du service de disque virtuel est remplacée par l’API gestion du stockage Windows.]

Définit les contrôleurs de sous-système sur actifs ou inactifs par rapport au numéro d’unité logique.

Syntaxe

HRESULT AssociateControllers(
  [in] VDS_OBJECT_ID *pActiveControllerIdArray,
  [in] LONG          lNumberOfActiveControllers,
  [in] VDS_OBJECT_ID *pInactiveControllerIdArray,
  [in] LONG          lNumberOfInactiveControllers
);

Paramètres

[in] pActiveControllerIdArray

Pointeur vers un tableau de GUID de contrôleur. Le fournisseur définit ces contrôleurs sur actifs. Ce tableau inclut des contrôleurs déjà définis sur actifs qui doivent le rester.

[in] lNumberOfActiveControllers

Nombre de contrôleurs spécifiés dans le paramètre pActiveControllerArray .

[in] pInactiveControllerIdArray

Pointeur vers un tableau de GUID de contrôleur. Le fournisseur définit ces contrôleurs sur inactifs. Ce tableau inclut des contrôleurs déjà définis sur inactifs qui doivent le rester.

[in] lNumberOfInactiveControllers

Nombre de contrôleurs spécifiés dans le paramètre pInactiveControllerIdArray .

Valeur retournée

Cette méthode peut retourner des valeurs HRESULT standard, telles que E_INVALIDARG ou E_OUTOFMEMORY, et des valeurs de retour spécifiques à VDS. Il peut également retourner des codes d’erreur système convertis à l’aide de la macro HRESULT_FROM_WIN32 . Les erreurs peuvent provenir de VDS lui-même ou du fournisseur VDS sous-jacent utilisé. Les valeurs de retour possibles sont les suivantes.

Code/valeur de retour Description
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Cette valeur de retour signale un problème logiciel ou de communication à l’intérieur d’un fournisseur qui met en cache des informations sur le tableau. Utilisez la méthode IVdsHwProvider ::Reenumerate suivie de la méthode IVdsHwProvider ::Refresh pour restaurer le cache.
VDS_E_OBJECT_DELETED
0x8004240BL
L’objet LUN n’est plus présent.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
Le numéro d’unité logique est en état d’échec et ne peut pas effectuer l’opération demandée.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Une autre opération est en cours. Cette opération ne peut pas continuer tant que l’opération précédente ou les opérations ne sont pas terminées.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
Un ou plusieurs GUID spécifiés dans les tableaux actifs ou inactifs ne font pas référence à un objet existant.
VDS_E_NOT_SUPPORTED
0x80042400L
Cette opération ou cette combinaison de paramètres n’est pas prise en charge par ce fournisseur.

Remarques

L’appelant doit inclure chaque contrôleur de sous-système dans l’un des paramètres pActiveControllerIdArray ou pInactiveControllerIdArray pour chaque appel de méthode. La composition des paramètres pActiveControllerIdArray et pInactiveControllerIdArray peut être différente pour chaque numéro d’unité logique du sous-système. La plupart des sous-systèmes implémentent un seul contrôleur actif, mais certains autorisent plusieurs contrôleurs actifs.

Note La valeur de retour E_INVALIDARG peut indiquer que l’appelant n’a pas spécifié tous les contrôleurs dans le sous-système. La méthode AssociateControllers nécessite que tous les contrôleurs du sous-système soient présents dans l’un des deux tableaux fournis.
 
Utilisez la méthode IVdsLun ::QueryActiveControllers pour interroger les associations de contrôleurs. Utilisez la méthode IVdsController ::QueryAssociatedLuns pour interroger les lun associés à un contrôleur particulier.

Configuration requise

Condition requise Valeur
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 vds.h
Bibliothèque Uuid.lib

Voir aussi

IVdsController ::QueryAssociatedLuns

IVdsHwProvider ::Réumerate

IVdsHwProvider ::Refresh

IVdsLun

IVdsLun ::QueryActiveControllers