estrutura EVENT_INSTANCE_HEADER (evntrace.h)

A estrutura EVENT_INSTANCE_HEADER contém informações de rastreamento de eventos padrão comuns a todos os eventos gravados por TraceEventInstance. A estrutura também contém identificadores de registro para a classe de rastreamento de evento e o evento pai relacionado, que você usa para rastrear instâncias de uma transação ou relações hierárquicas entre eventos relacionados.

Sintaxe

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;

Membros

Size

Número total de bytes do evento. O tamanho deve incluir o tamanho da estrutura EVENT_INSTANCE_HEADER , além do tamanho de todos os dados específicos do evento acrescentados a essa estrutura. O tamanho deve ser menor que o tamanho do buffer da sessão de rastreamento de eventos menos 72 (0x48).

DUMMYUNIONNAME

Uma união de várias estruturas e membros.

DUMMYUNIONNAME.FieldTypeFlags

Reservado.

DUMMYUNIONNAME.DUMMYSTRUCTNAME

Reservado.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.HeaderType

Reservado.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MarkerFlags

Reservado.

DUMMYUNIONNAME2

Uma união de Classe em duas formas.

DUMMYUNIONNAME2.Version

Este é um roll-up dos membros da Classe. O byte de baixa ordem contém o Tipo, o próximo byte contém o Nível e os dois últimos bytes contêm a versão.

DUMMYUNIONNAME2.Class

A estrutura De classe.

DUMMYUNIONNAME2.Class.Type

Tipo de evento. Um provedor pode definir seus próprios tipos de evento ou usar os tipos de evento predefinidos listados na tabela a seguir.

  • EVENT_TRACE_TYPE_CHECKPOINT

    Evento checkpoint. Use para um evento que não esteja no início ou no final de uma atividade.

  • EVENT_TRACE_TYPE_DC_END

    Evento final da coleta de dados.

  • EVENT_TRACE_TYPE_DC_START

    Evento de início da coleta de dados.

  • EVENT_TRACE_TYPE_DEQUEUE

    Evento de remoção de fila. Use quando uma atividade for enfileirada antes de começar. Use EVENT_TRACE_TYPE_START para marcar a hora em que um item de trabalho está na fila. Use o tipo de evento de remoção de fila para marcar a hora em que o trabalho no item realmente começa. Use EVENT_TRACE_TYPE_END para marcar a hora em que o trabalho no item é concluído.

  • EVENT_TRACE_TYPE_END

    Evento final. Use para rastrear o estado final de um evento de várias etapas.

  • EVENT_TRACE_TYPE_EXTENSION

    Evento de extensão. Use para um evento que é uma continuação de um evento anterior. Por exemplo, use o tipo de evento de extensão quando um rastreamento de evento registrar mais dados do que pode caber em um buffer de sessão.

  • EVENT_TRACE_TYPE_INFO

    Evento informativo. Esse é o tipo de evento padrão.

  • EVENT_TRACE_TYPE_REPLY

    Evento de resposta. Use quando um aplicativo que solicita recursos puder receber várias respostas. Por exemplo, se um aplicativo cliente solicitar uma URL e o servidor Web responder enviando vários arquivos, cada arquivo recebido poderá ser marcado como um evento de resposta.

  • EVENT_TRACE_TYPE_START

    Evento De início. Use para rastrear o estado inicial de um evento de várias etapas.

Se o GUID da classe de rastreamento de eventos der suporte a vários tipos de evento, os consumidores usarão o tipo de evento para determinar o evento e como interpretar seu conteúdo.

DUMMYUNIONNAME2.Class.Level

Valor definido pelo provedor que define o nível de severidade usado para gerar o evento. O valor varia de 0 a 255. O controlador especifica o nível de severidade quando chama a função EnableTraceEx2 . O provedor recupera o nível de severidade chamando a função GetTraceEnableLevel de sua implementação ControlCallback . O provedor usa o valor para definir esse membro.

O ETW define os níveis de severidade a seguir. Selecionar um nível superior a 1 também incluirá eventos para níveis mais baixos. Por exemplo, se o controlador especificar TRACE_LEVEL_WARNING (3), o provedor também gerará eventos de TRACE_LEVEL_FATAL (1) e TRACE_LEVEL_ERROR (2).

Valor Significado
TRACE_LEVEL_CRITICAL (1) Eventos anormais de saída ou encerramento
TRACE_LEVEL_ERROR (2) Eventos de erro graves
TRACE_LEVEL_WARNING (3) Eventos de aviso, como falhas de alocação
TRACE_LEVEL_INFORMATION (4) Eventos sem erro, como eventos de entrada ou saída
TRACE_LEVEL_VERBOSE (5) Eventos de rastreamento detalhados

DUMMYUNIONNAME2.Class.Version

Indica a versão da classe de rastreamento de evento que você está usando para registrar o evento em log. Especifique zero se houver apenas uma versão da classe de rastreamento de evento. A versão informa ao consumidor qual classe MOF usar para decifrar os dados do evento.

ThreadId

Na saída, identifica o thread que gerou o evento.

Observe que, no Windows 2000, ThreadId era um valor ULONGLONG .

ProcessId

Na saída, identifica o processo que gerou o evento.

Windows 2000: Não há suporte para esse membro.

TimeStamp

Na saída, contém a hora em que o evento ocorreu, em intervalos de 100 nanossegundos desde a meia-noite de 1º de janeiro de 1601.

RegHandle

Identificador para uma classe de rastreamento de evento registrada. Defina essa propriedade antes de chamar a função TraceEventInstance .

A função RegisterTraceGuids cria esse identificador (consulte o parâmetro TraceGuidReg ).

InstanceId

Na saída, contém o identificador de instância de rastreamento de evento associado a RegHandle.

ParentInstanceId

Na saída, contém o identificador de instância de rastreamento de evento associado a ParentRegHandle.

DUMMYUNIONNAME3

Uma união de structs e membros.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME

Uma estrutura que contém os membros a seguir.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.KernelTime

Tempo de execução decorrido para instruções de modo kernel, em tiques de CPU. Se você estiver usando uma sessão privada, use o valor no membro ProcessorTime .

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.UserTime

Tempo de execução decorrido para instruções de modo de usuário, em tiques de CPU. Se você estiver usando uma sessão privada, use o valor no membro ProcessorTime .

DUMMYUNIONNAME3.ProcessorTime

Para sessões privadas, o tempo de execução decorrido para instruções de modo de usuário, em tiques de CPU.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME2

Uma união de structs e membros.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.EventId

O identificador de evento.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.Flags

Deve conter WNODE_FLAG_TRACED_GUID e também pode conter qualquer combinação do seguinte.

  • WNODE_FLAG_USE_GUID_PTR

    Especifique se o membro GuidPtr contém o GUID da classe.

  • WNODE_FLAG_USE_MOF_PTR

    Especifique se uma matriz de estruturas MOF_FIELD contém os dados de evento acrescentados a essa estrutura. O número de elementos na matriz é limitado a MAX_MOF_FIELDS.

ParentRegHandle

Manipule para uma classe de rastreamento de evento registrada de um evento pai. Defina essa propriedade antes de chamar a função TraceEventInstance se quiser rastrear uma relação hierárquica (elemento pai/elemento filho) entre eventos relacionados.

A função RegisterTraceGuids cria esse identificador (consulte o parâmetro TraceGuidReg ).

Comentários

Certifique-se de inicializar a memória dessa estrutura como zero antes de definir qualquer membro.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho evntrace.h

Confira também

TraceEventInstance