Partager via


IVdsLun::QueryActiveControllers, méthode (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.]

Retourne une énumération des contrôleurs actuellement actifs, à savoir les contrôleurs par lesquels le numéro d’unité logique est accessible.

Syntaxe

HRESULT QueryActiveControllers(
  [out] IEnumVdsObject **ppEnum
);

Paramètres

[out] ppEnum

Adresse d’un pointeur d’interface IEnumVdsObject qui peut être utilisée pour énumérer les contrôleurs dans le sous-système en tant qu’objets de contrôleur. Pour plus d’informations, consultez Utilisation des objets d’énumération. Les appelants doivent libérer l’interface et chacun des objets du contrôleur lorsqu’ils ne sont plus nécessaires en appelant la méthode IUnknown::Release .

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
S_OK
Retourne l’énumération des contrôleurs actifs. Si le numéro d’unité logique n’a aucun contrôleur actif, l’énumération est vide.
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 ou les opérations précédentes ne sont pas terminées.

Remarques

Utilisez la méthode IVdsLun::AssociateControllers pour définir le contrôleur. Utilisez la méthode IVdsController::QueryAssociatedLuns pour interroger les lun associés à un contrôleur particulier.

La plupart des sous-systèmes n’offrent qu’un seul contrôleur actif pour un numéro d’unité logique, ce qui laisse les autres contrôleurs en mode veille. Toutefois, certains fabricants de sous-systèmes autorisent plusieurs contrôleurs actifs simultanément.

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

Voir aussi

IEnumVdsObject

IVdsHwProvider::Réumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::AssociateControllers