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 |
---|---|
|
Le membre ExtendedData de EVENT_RECORD contient des données. |
|
L’événement a été journalisé dans une session privée. Utilisez ProcessorTime pour le temps d’exécution écoulé. |
|
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. |
|
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 . |
|
Utilisez ProcessorTime pour le temps d’exécution écoulé. |
|
Indique que le fournisseur s’exécutait sur un ordinateur 32 bits ou dans une session WOW64. |
|
Indique que le fournisseur s’exécutait sur un ordinateur 64 bits. |
|
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.
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) |