PEVENT_CALLBACK fonction de rappel (evntrace.h)
Les consommateurs d’événements ETW implémentent ce rappel pour recevoir les événements d’une session de traitement de trace. Ce rappel ne doit pas être utilisé dans le nouveau code. Au lieu de cela, implémentez EventRecordCallback.
Le type PEVENT_CALLBACK est un pointeur vers cette fonction de rappel. EventCallback est un espace réservé pour le nom de fonction défini par l’application.
Syntaxe
PEVENT_CALLBACK PeventCallback;
void PeventCallback(
[in] PEVENT_TRACE pEvent
)
{...}
Paramètres
[in] pEvent
Pointeur vers une structure EVENT_TRACE qui contient les informations d’événement.
Valeur de retour
None
Remarques
Notes
Ce rappel est obsolète, car il reçoit des informations incomplètes sur l’événement et n’est pas compatible avec les API d’assistance de décodage d’événements telles que TdhGetEventInformation. Au lieu d’implémenter EventCallback, implémentez EventRecordCallback.
Pour spécifier la fonction qu’ETW appelle pour remettre les événements, définissez le membre EventCallback de la structure EVENT_TRACE_LOGFILE que vous passez à la fonction OpenTrace .
Notes
Si votre fonction EventCallback reçoit des données brouchées de ProcessTrace, case activée les indicateurs spécifiés dans le ProcessTraceMode
champ de la EVENT_TRACE_LOGFILE
structure fournie à OpenTrace. EVENT_TRACE_LOGFILE
les champs EventCallback et EventRecordCallback sont des membres qui se chevauchent d’une union. Si le ProcessTraceMode
champ inclut l’indicateur PROCESS_TRACE_MODE_EVENT_RECORD
, ProcessTrace appelle votre rappel à l’aide de la signature de la fonction EventRecordCallback . Sinon, ProcessTrace appelle votre rappel à l’aide de la signature de la fonction EventCallback .
Après avoir utilisé OpenTrace pour créer la session de traitement des traces, appelez la fonction ProcessTrace pour commencer à recevoir les événements.
Lorsque ProcessTrace commence à traiter des événements à partir d’une trace, il peut appeler votre rappel avec un ou plusieurs événements synthétiques qui contiennent des données sur la trace (métadonnées) plutôt que des données provenant d’événements enregistrés. Ces événements synthétiques ont Header.Guid défini EventTraceGuid
sur et Header.Class.Type défini en fonction du contenu de l’événement synthétique. Par exemple, le premier événement de chaque fichier de trace sera un événement synthétique de type 0 contenant TRACE_LOGFILE_HEADER informations.
Tous les autres événements que vous recevez contiennent des données d’événement spécifiques au fournisseur. Vous utilisez les membres Header.Guid et Header.Class.Type de EVENT_TRACE pour déterminer le type d’événement que vous avez reçu. Il est possible de coder en dur la logique de décodage pour des types d’événements connus, mais la plupart des événements seront décodés à l’aide des informations de schéma MOF inscrites sur le système dans l’espace \\root\wmi
de noms. Pour plus d’informations sur l’utilisation du schéma MOF d’un événement pour interpréter l’événement, consultez Consommation d’événements.
Exemples
Pour obtenir un exemple d’implémentation d’une fonction EventCallback , consultez Récupération de données d’événement à l’aide de MOF.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | evntrace.h |