estructura de EVENT_HEADER (relogger.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 |
---|---|
|
El miembro ExtendedData de EVENT_RECORD contiene datos. |
|
El evento se registró en una sesión privada. Use ProcessorTime para el tiempo de ejecución transcurrido. |
|
Los datos del evento son una cadena Unicode terminada en null. No necesita un manifiesto para analizar el miembro UserData de EVENT_RECORD. |
|
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 lo escribió el preprocesador de seguimiento de software de Windows (WPP). |
|
Use ProcessorTime para el tiempo de ejecución transcurrido. |
|
Indica que el proveedor se estaba ejecutando en un equipo de 32 bits o en una sesión WOW64. |
|
Indica que el proveedor se estaba ejecutando en un equipo de 64 bits. |
|
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.
ThreadId
Identifica el subproceso que ha generado el evento.
ProcessId
Identifica el proceso que ha generado el evento.
TimeStamp
Contiene la hora en 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 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 en 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 del 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 que se cobra a ese subproceso en el momento del registro). Por ejemplo, si el mismo subproceso registra consecutivamente el evento A y el evento B 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 se usa en el conjunto de instrucciones. Por ejemplo, si la resolución del temporizador es de 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 (no el tiempo de reloj transcurrido) utilizada por 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 | relogger.h (include Evntcons.h) |