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 :
- Créez un instance vide de votre classe à l’aide de Provider ::CreateNewInstance.
- 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.
- Renvoyez le instance au client à l’aide de CInstance ::Commit.
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 |