estructura EVENT_HEADER (evntcons.h)

Define información sobre el evento.

Sintaxis

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;

Miembros

Size

Tamaño del registro de eventos, en bytes.

HeaderType

Reservado.

Flags

Marcas que proporcionan información sobre el evento, como el tipo de sesión en la que se registró y si el evento contiene datos extendidos. Este miembro puede contener una o varias de las marcas siguientes.

Valor Significado
EVENT_HEADER_FLAG_EXTENDED_INFO
El miembro ExtendedData de EVENT_RECORD contiene datos.
EVENT_HEADER_FLAG_PRIVATE_SESSION
El evento se registró en una sesión privada. Use ProcessorTime para el tiempo de ejecución transcurrido.
EVENT_HEADER_FLAG_STRING_ONLY
Los datos del evento son una cadena Unicode terminada en null. No necesita un manifiesto para analizar el miembro UserData de EVENT_RECORD.
EVENT_HEADER_FLAG_TRACE_MESSAGE
El proveedor usó TraceMessage o TraceMessageVa para registrar el evento. La mayoría de los proveedores no usan estas funciones para escribir eventos, por lo que esta marca suele indicar que el evento se escribió mediante el preprocesador de seguimiento de software (WPP) de Windows.
EVENT_HEADER_FLAG_NO_CPUTIME
Use ProcessorTime para el tiempo de ejecución transcurrido.
EVENT_HEADER_FLAG_32_BIT_HEADER
Indica que el proveedor se estaba ejecutando en un equipo de 32 bits o en una sesión WOW64.
EVENT_HEADER_FLAG_64_BIT_HEADER
Indica que el proveedor se estaba ejecutando en un equipo de 64 bits.
EVENT_HEADER_FLAG_CLASSIC_HEADER
Indica que el proveedor usó TraceEvent para registrar el evento.

EventProperty

Indica el origen que se va a usar para analizar los datos del evento.

Valor Significado
EVENT_HEADER_PROPERTY_XML
Indica que necesita un manifiesto para analizar los datos del evento.
EVENT_HEADER_PROPERTY_FORWARDED_XML
Indica que los datos del evento contienen en sí misma una descripción XML totalmente representada de los datos, por lo que no necesita un manifiesto para analizar los datos del evento.
EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG
Indica que necesita una clase MOF de WMI para analizar los datos del evento.

ThreadId

Identifica el subproceso que ha generado el evento.

ProcessId

Identifica el proceso que ha generado el evento.

TimeStamp

Contiene la hora a la que se produjo el evento. La resolución es el tiempo del sistema a menos que el miembro ProcessTraceMode de EVENT_TRACE_LOGFILE contenga la marca PROCESS_TRACE_MODE_RAW_TIMESTAMP, en cuyo caso la resolución depende del valor del miembro Wnode.ClientContext de EVENT_TRACE_PROPERTIES en el momento en que el controlador creó la sesión.

ProviderId

GUID que identifica de forma única el proveedor que registró el evento.

EventDescriptor

Define la información sobre el evento, como el identificador de evento y el nivel de gravedad. Para obtener más información, consulte EVENT_DESCRIPTOR.

DUMMYUNIONNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.KernelTime

Tiempo de ejecución transcurrido para las instrucciones en modo kernel, en unidades de tiempo de CPU. Si usa una sesión privada, use el valor en el miembro ProcessorTime en su lugar. Para obtener más información, vea la sección Comentarios.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.UserTime

Tiempo de ejecución transcurrido para las instrucciones del modo de usuario, en unidades de tiempo de CPU. Si usa una sesión privada, use el valor en el miembro ProcessorTime en su lugar. Para obtener más información, vea la sección Comentarios.

DUMMYUNIONNAME.ProcessorTime

En el caso de las sesiones privadas, el tiempo de ejecución transcurrido para las instrucciones en modo de usuario, en tics de CPU.

ActivityId

Identificador que relaciona dos eventos. Para obtener más información, consulte EventWriteTransfer.

Comentarios

Puede usar los miembros KernelTime y UserTime para determinar el costo de CPU en unidades para un conjunto de instrucciones (los valores indican el uso de CPU cargado en ese subproceso en el momento del registro). Por ejemplo, si el mismo subproceso registra consecutivamente el evento A y el evento B y tienen números de uso de CPU 150 y 175, la actividad realizada por ese subproceso entre los eventos A y B cuesta 25 unidades de tiempo de CPU (175 – 150).

TimerResolution de la estructura TRACE_LOGFILE_HEADER contiene la resolución del temporizador de uso de CPU en unidades de 100 nanosegundos. Puede usar la resolución del temporizador con los valores de tiempo del kernel y tiempo de usuario para determinar la cantidad de tiempo de CPU que usó el conjunto de instrucciones. Por ejemplo, si la resolución del temporizador es 156 250, 25 unidades de tiempo de CPU es de 0,39 segundos (156 250 * 25 * 100 / 1 000 000 000 000). Esta es la cantidad de tiempo de CPU (tiempo de reloj no transcurrido) que usa el conjunto de instrucciones entre los eventos A y B.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado evntcons.h (include Evntcons.h)

Consulte también

EVENT_RECORD