Fonction de rappel WMIDPREQUEST (evntrace.h)
Un fournisseur d’événements basé sur RegisterTraceGuids (« Classique ») implémente cette fonction pour recevoir ou désactiver les demandes de notification des contrôleurs.
Le type WMIDPREQUEST définit un pointeur vers cette fonction de rappel. ControlCallback est un espace réservé pour le nom de la fonction définie par l’application.
Syntaxe
WMIDPREQUEST Wmidprequest;
ULONG Wmidprequest(
[in] WMIDPREQUESTCODE RequestCode,
PVOID RequestContext,
ULONG *BufferSize,
[in] PVOID Buffer
)
{...}
Paramètres
[in] RequestCode
Code de demande. Il s’agit de l’une des valeurs suivantes.
Valeur | Signification |
---|---|
WMI_ENABLE_EVENTS | Active le fournisseur ou modifie la configuration du fournisseur. |
WMI_DISABLE_EVENTS | Désactive le fournisseur. |
RequestContext
Contexte défini par le fournisseur. Le fournisseur utilise le paramètre RequestContext de
RegisterTraceGuids pour spécifier le contexte.
BufferSize
Réservé à un usage interne.
[in] Buffer
Pointeur vers une structure de WNODE_HEADER qui contient des informations sur la session de suivi d’événements pour laquelle le fournisseur est activé ou désactivé.
Valeur retournée
Vous devez retourner ERROR_SUCCESS si le rappel réussit. Notez qu’ETW ignore la valeur de retour de cette fonction, sauf lorsqu’un contrôleur appelle EnableTrace pour activer un fournisseur et que le fournisseur n’a pas encore appelé RegisterTraceGuids. Dans ce cas, RegisterTraceGuids retourne la valeur de retour de ce rappel si l’inscription a réussi.
Remarques
Cette fonction est spécifiée à l’aide de la fonction RegisterTraceGuids . Lorsque le contrôleur appelle la fonction EnableTrace pour activer, désactiver ou modifier les indicateurs d’activation ou le niveau, ETW appelle ce rappel. Le fournisseur s’active ou se désactive en fonction de la valeur RequestCode . En règle générale, le fournisseur utilise cette valeur pour définir un indicateur global afin d’indiquer son état activé.
Le fournisseur définit son interprétation de l’activation ou de la désactivation. En règle générale, si un fournisseur est activé, il génère des événements, mais bien qu’il soit désactivé, il ne le fait pas.
ETW ne passe pas les indicateurs d’activation et le niveau d’activation que le contrôleur passe à la fonction EnableTrace à ce rappel. Pour récupérer ces informations, appelez les fonctions GetTraceEnableFlags et GetTraceEnableLevel , respectivement.
Vous devez également récupérer le handle de session dans ce rappel pour les appels futurs. Pour récupérer le handle de session, appelez la fonction GetTraceLoggerHandle .
Votre fonction de rappel ne doit pas appeler quoi que ce soit susceptible d’entraîner LoadLibrary (plus précisément, tout ce qui nécessite un verrou du chargeur).
Exemples
Pour obtenir un exemple d’implémentation d’une fonction ControlCallback , consultez Écriture d’événements classiques.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | evntrace.h |