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 |