Share via


structure EVENT_INSTANCE_HEADER (evntrace.h)

La structure EVENT_INSTANCE_HEADER contient des informations de suivi d’événements standard communes à tous les événements écrits par TraceEventInstance. La structure contient également des handles d’inscription pour la classe de trace d’événements et l’événement parent associé, que vous utilisez pour suivre les instances d’une transaction ou les relations hiérarchiques entre les événements associés.

Syntaxe

typedef struct _EVENT_INSTANCE_HEADER {
  USHORT        Size;
  union {
    USHORT FieldTypeFlags;
    struct {
      UCHAR HeaderType;
      UCHAR MarkerFlags;
    } DUMMYSTRUCTNAME;
  } DUMMYUNIONNAME;
  union {
    ULONG Version;
    struct {
      UCHAR  Type;
      UCHAR  Level;
      USHORT Version;
    } Class;
  } DUMMYUNIONNAME2;
  ULONG         ThreadId;
  ULONG         ProcessId;
  LARGE_INTEGER TimeStamp;
  ULONGLONG     RegHandle;
  ULONG         InstanceId;
  ULONG         ParentInstanceId;
  union {
    struct {
      ULONG KernelTime;
      ULONG UserTime;
    } DUMMYSTRUCTNAME;
    ULONG64 ProcessorTime;
    struct {
      ULONG EventId;
      ULONG Flags;
    } DUMMYSTRUCTNAME2;
  } DUMMYUNIONNAME3;
  ULONGLONG     ParentRegHandle;
} EVENT_INSTANCE_HEADER, *PEVENT_INSTANCE_HEADER;

Membres

Size

Nombre total d’octets de l’événement. La taille doit inclure la taille de la structure EVENT_INSTANCE_HEADER , ainsi que la taille de toutes les données spécifiques à un événement ajoutées à cette structure. La taille doit être inférieure à la taille de la mémoire tampon de la session de suivi d’événements moins 72 (0x48).

DUMMYUNIONNAME

Union de différentes structures et membres.

DUMMYUNIONNAME.FieldTypeFlags

Réservé.

DUMMYUNIONNAME.DUMMYSTRUCTNAME

Réservé.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.HeaderType

Réservé.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MarkerFlags

Réservé.

DUMMYUNIONNAME2

Union de classe sous deux formes.

DUMMYUNIONNAME2.Version

Il s’agit d’un cumul des membres de Class. L’octet de faible ordre contient le Type, l’octet suivant contient le Niveau et les deux derniers octets contiennent la version.

DUMMYUNIONNAME2.Class

Structure de classe.

DUMMYUNIONNAME2.Class.Type

Type d’événement. Un fournisseur peut définir ses propres types d’événements ou utiliser les types d’événements prédéfinis répertoriés dans le tableau suivant.

  • EVENT_TRACE_TYPE_CHECKPOINT

    Événement de point de contrôle. Utilisez pour un événement qui n’est pas au début ou à la fin d’une activité.

  • EVENT_TRACE_TYPE_DC_END

    Événement de fin de collecte de données.

  • EVENT_TRACE_TYPE_DC_START

    Événement de début de la collecte de données.

  • EVENT_TRACE_TYPE_DEQUEUE

    Événement Dequeue. À utiliser lorsqu’une activité est mise en file d’attente avant de commencer. Utilisez EVENT_TRACE_TYPE_START pour marquer l’heure à laquelle un élément de travail est mis en file d’attente. Utilisez le type d’événement dequeue pour marquer l’heure à laquelle le travail sur l’élément commence réellement. Utilisez EVENT_TRACE_TYPE_END pour marquer l’heure à laquelle le travail sur l’élément se termine.

  • EVENT_TRACE_TYPE_END

    Événement de fin. Permet de suivre l’état final d’un événement en plusieurs étapes.

  • EVENT_TRACE_TYPE_EXTENSION

    Événement d’extension. Utilisez pour un événement qui est une continuation d’un événement précédent. Par exemple, utilisez le type d’événement d’extension lorsqu’une trace d’événement enregistre plus de données que ne peut le faire une mémoire tampon de session.

  • EVENT_TRACE_TYPE_INFO

    Événement d’information. Il s’agit du type d’événement par défaut.

  • EVENT_TRACE_TYPE_REPLY

    Événement de réponse. À utiliser lorsqu’une application qui demande des ressources peut recevoir plusieurs réponses. Par exemple, si une application cliente demande une URL et que le serveur web répond en envoyant plusieurs fichiers, chaque fichier reçu peut être marqué comme événement de réponse.

  • EVENT_TRACE_TYPE_START

    Événement de démarrage. Permet de suivre l’état initial d’un événement en plusieurs étapes.

Si votre GUID de classe de trace d’événements prend en charge plusieurs types d’événements, les consommateurs utiliseront le type d’événement pour déterminer l’événement et interpréter son contenu.

DUMMYUNIONNAME2.Class.Level

Valeur définie par le fournisseur qui définit le niveau de gravité utilisé pour générer l’événement. La valeur varie de 0 à 255. Le contrôleur spécifie le niveau de gravité lorsqu’il appelle la fonction EnableTraceEx2 . Le fournisseur récupère le niveau de gravité en appelant la fonction GetTraceEnableLevel à partir de son implémentation ControlCallback . Le fournisseur utilise la valeur pour définir ce membre.

ETW définit les niveaux de gravité suivants. La sélection d’un niveau supérieur à 1 inclut également les événements pour les niveaux inférieurs. Par exemple, si le contrôleur spécifie TRACE_LEVEL_WARNING (3), le fournisseur génère également des événements TRACE_LEVEL_FATAL (1) et TRACE_LEVEL_ERROR (2).

Valeur Signification
TRACE_LEVEL_CRITICAL (1) Événements de sortie ou d’arrêt anormaux
TRACE_LEVEL_ERROR (2) Événements d’erreur grave
TRACE_LEVEL_WARNING (3) Événements d’avertissement tels que les échecs d’allocation
TRACE_LEVEL_INFORMATION (4) Événements sans erreur, tels que les événements d’entrée ou de sortie
TRACE_LEVEL_VERBOSE (5) Événements de trace détaillés

DUMMYUNIONNAME2.Class.Version

Indique la version de la classe de trace d’événements que vous utilisez pour journaliser l’événement. Spécifiez zéro s’il n’existe qu’une seule version de votre classe de trace d’événements. La version indique au consommateur la classe MOF à utiliser pour déchiffrer les données d’événement.

ThreadId

Lors de la sortie, identifie le thread qui a généré l’événement.

Notez que sur Windows 2000, ThreadId était une valeur ULONGLONG .

ProcessId

Lors de la sortie, identifie le processus qui a généré l’événement.

Windows 2000 : Ce membre n’est pas pris en charge.

TimeStamp

Sur la sortie, contient l’heure à laquelle l’événement s’est produit, par intervalles de 100 nanosecondes depuis minuit, le 1er janvier 1601.

RegHandle

Gérez une classe de trace d’événements inscrite. Définissez cette propriété avant d’appeler la fonction TraceEventInstance .

La fonction RegisterTraceGuids crée ce handle (consultez le paramètre TraceGuidReg ).

InstanceId

Sur la sortie, contient la trace d’événements instance identificateur associé à RegHandle.

ParentInstanceId

Sur la sortie, contient la trace d’événement instance identificateur associé à ParentRegHandle.

DUMMYUNIONNAME3

Union de structs et de membres.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME

Structure contenant les membres suivants.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.KernelTime

Temps d’exécution écoulé pour les instructions en mode noyau, dans les graduations du processeur. Si vous utilisez une session privée, utilisez plutôt la valeur dans le membre ProcessorTime .

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.UserTime

Temps d’exécution écoulé pour les instructions en mode utilisateur, dans les graduations du processeur. Si vous utilisez une session privée, utilisez plutôt la valeur dans le membre ProcessorTime .

DUMMYUNIONNAME3.ProcessorTime

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

DUMMYUNIONNAME3.DUMMYSTRUCTNAME2

Union de structs et de membres.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.EventId

Identificateur de l'événement.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.Flags

Doit contenir WNODE_FLAG_TRACED_GUID et peut également contenir n’importe quelle combinaison des éléments suivants.

  • WNODE_FLAG_USE_GUID_PTR

    Spécifiez si le membre GuidPtr contient le GUID de classe.

  • WNODE_FLAG_USE_MOF_PTR

    Spécifiez si un tableau de structures MOF_FIELD contient les données d’événement ajoutées à cette structure. Le nombre d’éléments dans le tableau est limité à MAX_MOF_FIELDS.

ParentRegHandle

Gérez vers une classe de trace d’événement inscrite d’un événement parent. Définissez cette propriété avant d’appeler la fonction TraceEventInstance si vous souhaitez tracer une relation hiérarchique (élément parent/élément enfant) entre les événements associés.

La fonction RegisterTraceGuids crée ce handle (voir le paramètre TraceGuidReg ).

Remarques

Veillez à initialiser la mémoire de cette structure sur zéro avant de définir des membres.

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]
En-tête evntrace.h

Voir aussi

TraceEventInstance