Partager via


Méthode CWbemProviderGlue::GetInstancesByQueryAsynch (wbemglue.h)

[La classe CWbemProviderGlue fait partie du framework de fournisseur WMI, qui est désormais considéré comme étant à l’état final. Aucun autre développement, aucune autre amélioration ou mise à jour 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 GetInstancesByQueryAsynch récupère une liste d’instances prises en charge par un fournisseur particulier et qui correspondent à une requête particulière. Cette méthode permet au fournisseur de répondre de manière asynchrone en retournant une instance à la fois.

Syntaxe

HRESULT GetInstancesByQueryAsynch(
  LPCWSTR                    query,
  Provider                   *pRequester,
  LPProviderInstanceCallback pCallback,
  LPCWSTR                    pszNamespace,
  MethodContext              *pMethodContext,
  void                       *pUserData
);

Paramètres

query

Requête à exécuter.

pRequester

Pointeur du instance de la classe fournie par le fournisseur d’infrastructure. Ce pointeur « this » est passé à la fonction pCallback au cas où la fonction de rappel l’exige.

pCallback

Pointeur vers une fonction statique avec ce prototype.

static HRESULT WINAPI Classname::FunctionName(Provider *pProvider,
                                              CInstance *pInstance,
                                              MethodContext *pMethodContext,
                                              void *pUserData );

où Classname est le nom d’une classe dérivée de la classe Provider. Il s’agit d’un instance de cette classe qui est le pointeur « this » défini par pRequester.

pszNamespace

Espace de noms pour la requête. Si la valeur est NULL, l’espace de noms par défaut root\cimv2 est utilisé.

pMethodContext

Pointeur vers le contexte actuel. Un contexte doit être fourni pour éviter les interblocages. Utilisez le contexte transmis au fournisseur par Provider::EnumerateInstances ou Provider::ExecQuery, ou bien obtenez-le à partir du instance à l’aide de CInstance::GetMethodContext. Ce paramètre ne doit pas avoir la valeur NULL.

pUserData

Pointeur vers les données définies par l’utilisateur transmises à la fonction pointée par pCallback. Si la valeur est NULL, il n’existe aucune donnée définie par l’utilisateur.

Valeur retournée

La méthode retourne WBEM_S_NO_ERROR si l’opération a réussi, WBEM_E_OUT_OF_MEMORY si l’opération a échoué en raison d’un manque de mémoire ou d’un autre code d’erreur HRESULT.

Remarques

La méthode GetInstancesByQueryAsynch permet aux fournisseurs d’infrastructure d’accéder aux données d’autres fournisseurs sans avoir à effectuer un appel d’API WMI. Les fournisseurs d’infrastructure transmettent une requête à GetInstancesByQueryAsynch, qui retourne les instances appropriées.

Pour des raisons de performances, lors de l’appel de cette fonction, spécifiez uniquement les propriétés dont vous avez besoin (par exemple, spécifiez SELECT name au lieu de SELECT *).

Étant donné que le rappel au récepteur peut ne pas être retourné au même niveau d’authentification que celui requis par le client, il est recommandé d’utiliser la communication semi-synchrone au lieu d’asynchrone. Si vous avez besoin d’une communication asynchrone, consultez Appel d’une méthode.

Pour plus d’informations sur l’utilisation semi-synchronisée des méthodes, consultez CWbemProviderGlue::GetInstancesByQuery et Appel d’une méthode.

Configuration requise

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