Partager via


Provider ::EnumerateInstances, méthode (provider.h)

[La classe Provider fait partie de L’infrastructure de fournisseur WMI, qui est maintenant considérée dans l’état final, et aucun développement, amélioration ou mise à jour supplémentaire ne sera disponible pour les problèmes non liés à la sécurité affectant ces bibliothèques. Les API MI doivent être utilisées dans tout nouveau développement.]

La méthode EnumerateInstances est appelée par WMI pour récupérer toutes les instances de la classe d’un fournisseur d’infrastructure.

Syntaxe

HRESULT EnumerateInstances(
  MethodContext *pMethodContext,
  long          lFlags
);

Paramètres

pMethodContext

Pointeur vers l’objet de contexte pour cet appel. Cette valeur contient toutes les propriétés IWbemContext spécifiées par le client. En outre, ce pointeur doit être utilisé comme paramètre pour tout rappel dans WMI.

lFlags

Masque de bits des indicateurs avec des informations sur l’opération EnumerateInstances . Il s’agit de la valeur spécifiée par le client dans la méthode IWbemServices ::CreateInstanceEnum .

Les indicateurs suivants sont gérés par (et filtrés) par WMI :

  • WBEM_FLAG_DEEP
  • WBEM_FLAG_SHALLOW
  • WBEM_FLAG_RETURN_IMMEDIATELY
  • WBEM_FLAG_FORWARD_ONLY
  • WBEM_FLAG_BIDIRECTIONAL
  • WBEM_FLAG_USE_AMENDED_QUALIFIERS

Valeur retournée

L’implémentation du fournisseur d’infrastructure par défaut de cette méthode retourne WBEM_E_PROVIDER_NOT_CAPABLE à la méthode appelante. La méthode IWbemServices ::CreateInstanceEnum répertorie les valeurs de retour les plus courantes, mais vous pouvez choisir de retourner n’importe quel code de retour COM.

Remarques

Le fait que EnumerateInstances retourne zéro instance en instanciant zéro instance CInstance et en définissant la valeur de retour sur WBEM_S_NO_ERROR n’est pas une erreur.

WMI appelle souvent EnumerateInstances lorsqu’une application cliente appelle IWbemServices ::CreateInstanceEnum, bien que WMI puisse également appeler EnumerateInstances dans d’autres situations. Voici un moyen courant de remplacer EnumerateInstances :

  1. Créez un instance vide de votre classe à l’aide de Provider ::CreateNewInstance.
  2. Remplissez les propriétés du instance vide à l’aide des méthodes Set de la classe CInstance, telles que CInstance ::SetByte ou CInstance ::SetStringArray.
  3. Renvoyez le instance au client à l’aide de CInstance ::Commit.
Si vous créez un fournisseur de méthode uniquement et que vous n’avez aucune instance, ou si l’énumération d’instances de votre classe renverrait trop d’instances, vous pouvez décider de prendre en charge les requêtes qui récupèrent uniquement des instances spécifiques.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête provider.h (include FwCommon.h)
Bibliothèque FrameDyn.lib
DLL FrameDynOS.dll ; FrameDyn.dll