estructura EVENT_INSTANCE_HEADER (evntrace.h)
La estructura EVENT_INSTANCE_HEADER contiene información de seguimiento de eventos estándar común a todos los eventos escritos por TraceEventInstance. La estructura también contiene identificadores de registro para la clase de seguimiento de eventos y el evento primario relacionado, que se usa para realizar un seguimiento de instancias de una transacción o relaciones jerárquicas entre eventos relacionados.
Sintaxis
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;
Miembros
Size
Número total de bytes del evento. El tamaño debe incluir el tamaño de la estructura de EVENT_INSTANCE_HEADER , además del tamaño de los datos específicos del evento anexados a esta estructura. El tamaño debe ser menor que el tamaño del búfer de la sesión de seguimiento de eventos menos 72 (0x48).
DUMMYUNIONNAME
Unión de varias estructuras y miembros.
DUMMYUNIONNAME.FieldTypeFlags
Reservado.
DUMMYUNIONNAME.DUMMYSTRUCTNAME
Reservado.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.HeaderType
Reservado.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MarkerFlags
Reservado.
DUMMYUNIONNAME2
Una unión de Class en dos formas.
DUMMYUNIONNAME2.Version
Se trata de un resumen de los miembros de Class. El byte de orden bajo contiene el tipo, el siguiente byte contiene el nivel y los dos últimos bytes contienen la versión.
DUMMYUNIONNAME2.Class
Estructura Class.
DUMMYUNIONNAME2.Class.Type
Tipo de evento. Un proveedor puede definir sus propios tipos de eventos o usar los tipos de eventos predefinidos enumerados en la tabla siguiente.
EVENT_TRACE_TYPE_CHECKPOINT
Evento de punto de control. Se usa para un evento que no está al principio o al final de una actividad.
EVENT_TRACE_TYPE_DC_END
Evento de finalización de la recopilación de datos.
EVENT_TRACE_TYPE_DC_START
Evento de inicio de la recopilación de datos.
EVENT_TRACE_TYPE_DEQUEUE
Evento Dequeue. Use cuando se pone en cola una actividad antes de comenzar. Use EVENT_TRACE_TYPE_START para marcar la hora en que se pone en cola un elemento de trabajo. Use el tipo de evento de puesta en cola para marcar la hora en que comienza realmente el trabajo en el elemento. Use EVENT_TRACE_TYPE_END para marcar la hora en que se completa el trabajo en el elemento.
EVENT_TRACE_TYPE_END
Evento end. Use para realizar un seguimiento del estado final de un evento de varios pasos.
EVENT_TRACE_TYPE_EXTENSION
Evento de extensión. Se usa para un evento que es una continuación de un evento anterior. Por ejemplo, use el tipo de evento de extensión cuando un seguimiento de eventos registra más datos de los que pueden caber en un búfer de sesión.
EVENT_TRACE_TYPE_INFO
Evento informativo. Este es el tipo de evento predeterminado.
EVENT_TRACE_TYPE_REPLY
Evento de respuesta. Se usa cuando una aplicación que solicita recursos puede recibir varias respuestas. Por ejemplo, si una aplicación cliente solicita una dirección URL y el servidor web responde enviando varios archivos, cada archivo recibido se puede marcar como un evento de respuesta.
EVENT_TRACE_TYPE_START
Evento de inicio. Use para realizar un seguimiento del estado inicial de un evento de varios pasos.
Si el GUID de la clase de seguimiento de eventos admite varios tipos de eventos, los consumidores usarán el tipo de evento para determinar el evento y cómo interpretar su contenido.
DUMMYUNIONNAME2.Class.Level
Valor definido por el proveedor que define el nivel de gravedad usado para generar el evento. El valor oscila entre 0 y 255. El controlador especifica el nivel de gravedad cuando llama a la función EnableTraceEx2 . El proveedor recupera el nivel de gravedad llamando a la función GetTraceEnableLevel desde su implementación de ControlCallback . El proveedor usa el valor para establecer este miembro.
ETW define los siguientes niveles de gravedad. La selección de un nivel superior a 1 también incluirá eventos para los niveles inferiores. Por ejemplo, si el controlador especifica TRACE_LEVEL_WARNING (3), el proveedor también genera eventos TRACE_LEVEL_FATAL (1) y TRACE_LEVEL_ERROR (2).
Valor | Significado |
---|---|
TRACE_LEVEL_CRITICAL (1) | Eventos de salida o finalización anómalos |
TRACE_LEVEL_ERROR (2) | Eventos de error graves |
TRACE_LEVEL_WARNING (3) | Eventos de advertencia, como errores de asignación |
TRACE_LEVEL_INFORMATION (4) | Eventos que no son de error, como eventos de entrada o salida |
TRACE_LEVEL_VERBOSE (5) | Eventos de seguimiento detallados |
DUMMYUNIONNAME2.Class.Version
Indica la versión de la clase de seguimiento de eventos que está usando para registrar el evento. Especifique cero si solo hay una versión de la clase de seguimiento de eventos. La versión indica al consumidor qué clase MOF usar para descifrar los datos del evento.
ThreadId
En la salida, identifica el subproceso que generó el evento.
Tenga en cuenta que en Windows 2000, ThreadId era un valor de ULONGLONG .
ProcessId
En la salida, identifica el proceso que generó el evento.
Windows 2000: No se admite este miembro.
TimeStamp
En la salida, contiene la hora en que se produjo el evento, en intervalos de 100 nanosegundos desde medianoche, 1 de enero de 1601.
RegHandle
Identificador de una clase de seguimiento de eventos registrada. Establezca esta propiedad antes de llamar a la función TraceEventInstance .
La función RegisterTraceGuids crea este identificador (consulte el parámetro TraceGuidReg ).
InstanceId
En la salida, contiene el identificador de instancia de seguimiento de eventos asociado a RegHandle.
ParentInstanceId
En la salida, contiene el identificador de instancia de seguimiento de eventos asociado a ParentRegHandle.
DUMMYUNIONNAME3
Unión de estructuras y miembros.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME
Estructura que contiene los miembros siguientes.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.KernelTime
Tiempo de ejecución transcurrido para las instrucciones en modo kernel, en tics de CPU. Si usa una sesión privada, use el valor en el miembro ProcessorTime en su lugar.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.UserTime
Tiempo de ejecución transcurrido para las instrucciones del modo de usuario, en tics de CPU. Si usa una sesión privada, use el valor en el miembro ProcessorTime en su lugar.
DUMMYUNIONNAME3.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.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2
Unión de estructuras y miembros.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.EventId
Identificador de evento.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.Flags
Debe contener WNODE_FLAG_TRACED_GUID y también puede contener cualquier combinación de lo siguiente.
WNODE_FLAG_USE_GUID_PTR
Especifique si el miembro GuidPtr contiene el GUID de clase.
WNODE_FLAG_USE_MOF_PTR
Especifique si una matriz de estructuras de MOF_FIELD contiene los datos de eventos anexados a esta estructura. El número de elementos de la matriz se limita a MAX_MOF_FIELDS.
ParentRegHandle
Identificador de una clase de seguimiento de eventos registrado de un evento primario. Establezca esta propiedad antes de llamar a la función TraceEventInstance si desea realizar un seguimiento de una relación jerárquica (elemento primario o elemento secundario) entre eventos relacionados.
La función RegisterTraceGuids crea este identificador (consulte el parámetro TraceGuidReg ).
Comentarios
Asegúrese de inicializar la memoria de esta estructura en cero antes de establecer los miembros.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado | evntrace.h |