Partager via


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

Voir aussi

EnableTrace

GetTraceEnableFlags

GetTraceEnableLevel

GetTraceLoggerHandle

RegisterTraceGuids

WNODE_HEADER