Partager via


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_LOGFILEles 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

Voir aussi

Consommation d’événements

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace