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 |