IWbemEventProviderQuerySink ::NewQuery, méthode (wbemprov.h)
Appelez la méthode IWbemEventProviderQuerySink ::NewQuery lorsqu’un consommateur d’événements logiques inscrit un filtre de requête d’événement approprié auprès de Windows Management. La méthode NewQuery détermine comment un fournisseur répond à une nouvelle requête inscrite par une application cliente. Lorsque WMI reçoit une requête d’événement nouveau ou modifié d’un consommateur, WMI appelle NewQuery pour faire écho à la requête au fournisseur d’événements. Le fournisseur génère ensuite la notification demandée.
Syntaxe
HRESULT NewQuery(
[in] unsigned long dwId,
[in] WBEM_WSTR wszQueryLanguage,
[in] WBEM_WSTR wszQuery
);
Paramètres
[in] dwId
Identificateur généré par Windows Management pour la requête. Le fournisseur peut effectuer le suivi de cette opération afin que, lors d’un appel ultérieur à CancelQuery , le fournisseur sache quelle requête a été annulée.
[in] wszQueryLanguage
Langue du filtre de requête suivant. Pour cette version de WMI, il s’agit toujours de « WQL ».
[in] wszQuery
Texte du filtre de requête d’événement, qui a été inscrit par un consommateur logique. Le fournisseur d’événements peut examiner le texte du filtre de requête via le paramètre wszQuery et la langue du filtre de requête dans le paramètre wszQueryLanguage pour découvrir les notifications d’événements demandées par le consommateur.
Valeur retournée
Cette méthode retourne une valeur HRESULT qui indique le statut de l'appel de méthode. La liste suivante répertorie les codes de retour retournés par NewQuery. En outre, un fournisseur d’événements tiers peut retourner n’importe quel code de retour WMI ou COM valide qui peut être transmis via NewQuery en tant que valeur de retour.
Remarques
Si un consommateur inscrit une requête de filtre d’événements auprès de Windows Management et que la requête contient des références aux événements fournis par le fournisseur d’événements actuel, Windows Management peut informer le fournisseur d’événements de la requête.
Si le fournisseur implémente l’interface IWbemEventProviderQuerySink , Windows Management fournit une copie du texte de la requête au fournisseur. Le fournisseur doit analyser la requête et déterminer s’il peut effectuer une optimisation interne.
Windows Management ne s’attend pas à ce qu’un fournisseur modifie son comportement de quelque manière que ce soit. Il s’agit plutôt d’un appel consultatif pour aider le fournisseur à optimiser en interne.
Par exemple, si le fournisseur est capable de fournir plusieurs centaines d’événements, mais que la surcharge requise pour tous les fournir est importante, le fournisseur peut réaliser des économies substantielles s’il sait que la plupart de ces événements ne sont pas requis par l’ensemble actuel de consommateurs d’événements. Si le fournisseur implémente IWbemEventProviderQuerySink, il connaîtra l’ensemble actuel des événements demandés par tous les consommateurs. Il peut être en mesure d’éviter de configurer les mécanismes permettant de fournir la plupart des types d’événements qu’il prend en charge jusqu’à ce que les consommateurs commencent réellement à demander ces événements.
Pour chaque nouveau filtre de requête de consommateur, un appel distinct à cette méthode avec un dwId unique est effectué. N’oubliez pas que Windows Management se réserve le droit d’appeler NewQuery plusieurs fois pour la même valeur dwId ; par exemple, en cas de modification de schéma ailleurs dans le système. Pour cette version de WMI, le langage de requête est toujours « WQL ».
La méthode IWbemEventProviderQuerySink ::NewQuery peut être appelée avant la méthode IWbemEventProvider ::P rovideEvents .
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 | wbemprov.h (include Wbemidl.h) |
Bibliothèque | Wbemuuid.lib |
DLL | Wbemsvc.dll |