EVENT_HEADER structure (evntcons.h)

Définit des informations sur l’événement.

Syntaxe

typedef struct _EVENT_HEADER {
  USHORT           Size;
  USHORT           HeaderType;
  USHORT           Flags;
  USHORT           EventProperty;
  ULONG            ThreadId;
  ULONG            ProcessId;
  LARGE_INTEGER    TimeStamp;
  GUID             ProviderId;
  EVENT_DESCRIPTOR EventDescriptor;
  union {
    struct {
      ULONG KernelTime;
      ULONG UserTime;
    } DUMMYSTRUCTNAME;
    ULONG64 ProcessorTime;
  } DUMMYUNIONNAME;
  GUID             ActivityId;
} EVENT_HEADER, *PEVENT_HEADER;

Membres

Size

Taille de l’enregistrement d’événement, en octets.

HeaderType

Réservé.

Flags

Indicateurs qui fournissent des informations sur l’événement, comme le type de session dans laquelle il a été journalisé et si l’événement contient des données étendues. Ce membre peut contenir un ou plusieurs des indicateurs suivants.

Valeur Signification
EVENT_HEADER_FLAG_EXTENDED_INFO
Le membre ExtendedData de EVENT_RECORD contient des données.
EVENT_HEADER_FLAG_PRIVATE_SESSION
L’événement a été journalisé dans une session privée. Utilisez ProcessorTime pour le temps d’exécution écoulé.
EVENT_HEADER_FLAG_STRING_ONLY
Les données d’événement sont une chaîne Unicode terminée par null. Vous n’avez pas besoin d’un manifeste pour analyser le membre UserData de EVENT_RECORD.
EVENT_HEADER_FLAG_TRACE_MESSAGE
Le fournisseur a utilisé TraceMessage ou TraceMessageVa pour journaliser l’événement. La plupart des fournisseurs n’utilisent pas ces fonctions pour écrire des événements. Cet indicateur indique donc généralement que l’événement a été écrit par wpp ( Software Trace Preprocessor) Windows .
EVENT_HEADER_FLAG_NO_CPUTIME
Utilisez ProcessorTime pour le temps d’exécution écoulé.
EVENT_HEADER_FLAG_32_BIT_HEADER
Indique que le fournisseur s’exécutait sur un ordinateur 32 bits ou dans une session WOW64.
EVENT_HEADER_FLAG_64_BIT_HEADER
Indique que le fournisseur s’exécutait sur un ordinateur 64 bits.
EVENT_HEADER_FLAG_CLASSIC_HEADER
Indique que le fournisseur a utilisé TraceEvent pour journaliser l’événement.

EventProperty

Indique la source à utiliser pour analyser les données d’événement.

Valeur Signification
EVENT_HEADER_PROPERTY_XML
Indique que vous avez besoin d’un manifeste pour analyser les données d’événement.
EVENT_HEADER_PROPERTY_FORWARDED_XML
Indique que les données d’événement contiennent en elles-mêmes une description XML entièrement rendue des données. Vous n’avez donc pas besoin d’un manifeste pour analyser les données d’événement.
EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG
Indique que vous avez besoin d’une classe WMI MOF pour analyser les données d’événement.

ThreadId

Identifie le thread qui a généré l’événement.

ProcessId

Identifie le processus qui a généré l’événement.

TimeStamp

Contient l’heure à laquelle l’événement s’est produit. La résolution est l’heure système, sauf si le membre ProcessTraceMode de EVENT_TRACE_LOGFILE contient l’indicateur PROCESS_TRACE_MODE_RAW_TIMESTAMP, auquel cas la résolution dépend de la valeur du membre Wnode.ClientContext de EVENT_TRACE_PROPERTIES au moment où le contrôleur a créé la session.

ProviderId

GUID qui identifie de manière unique le fournisseur qui a enregistré l’événement.

EventDescriptor

Définit les informations sur l’événement, telles que l’identificateur d’événement et le niveau de gravité. Pour plus d’informations, consultez EVENT_DESCRIPTOR.

DUMMYUNIONNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.KernelTime

Temps d’exécution écoulé pour les instructions en mode noyau, en unités de temps processeur. Si vous utilisez une session privée, utilisez plutôt la valeur dans le membre ProcessorTime . Pour plus d'informations, consultez la section Notes.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.UserTime

Temps d’exécution écoulé pour les instructions en mode utilisateur, en unités de temps processeur. Si vous utilisez une session privée, utilisez plutôt la valeur dans le membre ProcessorTime . Pour plus d'informations, consultez la section Notes.

DUMMYUNIONNAME.ProcessorTime

Pour les sessions privées, temps d’exécution écoulé pour les instructions en mode utilisateur, en cycles du processeur.

ActivityId

Identificateur qui lie deux événements. Pour plus d’informations, consultez EventWriteTransfer.

Remarques

Vous pouvez utiliser les membres KernelTime et UserTime pour déterminer le coût du processeur en unités pour un ensemble d’instructions (les valeurs indiquent l’utilisation du processeur facturée à ce thread au moment de la journalisation). Par exemple, si l’événement A et l’événement B sont enregistrés consécutivement par le même thread et qu’ils ont les numéros d’utilisation du processeur 150 et 175, l’activité effectuée par ce thread entre les événements A et B coûte 25 unités de temps processeur (175 à 150).

La timerResolution de la structure TRACE_LOGFILE_HEADER contient la résolution du minuteur d’utilisation du processeur en unités de 100 nanosecondes. Vous pouvez utiliser la résolution du minuteur avec les valeurs de temps du noyau et de temps utilisateur pour déterminer la durée processeur utilisée par l’ensemble d’instructions. Par exemple, si la résolution du minuteur est de 156 250, 25 unités de temps processeur sont 0,39 seconde (156 250 * 25 * 100 / 1 000 000 000). Il s’agit de la quantité de temps processeur (temps d’horloge non écoulé) utilisée par l’ensemble d’instructions entre les événements A et B.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête evntcons.h (inclure Evntcons.h)

Voir aussi

EVENT_RECORD