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

Consulte también

TraceEventInstance