Compartilhar via


estrutura EVENT_HEADER (evntcons.h)

Define informações sobre o evento.

Sintaxe

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;

Membros

Size

Tamanho do registro de evento, em bytes.

HeaderType

Reservado.

Flags

Sinalizadores que fornecem informações sobre o evento, como o tipo de sessão em que ele foi registrado e se o evento contém dados estendidos. Esse membro pode conter um ou mais dos sinalizadores a seguir.

Valor Significado
EVENT_HEADER_FLAG_EXTENDED_INFO
O membro ExtendedData do EVENT_RECORD contém dados.
EVENT_HEADER_FLAG_PRIVATE_SESSION
O evento foi registrado em uma sessão privada. Use ProcessorTime para o tempo de execução decorrido.
EVENT_HEADER_FLAG_STRING_ONLY
Os dados do evento são uma cadeia de caracteres Unicode terminada em nulo. Você não precisa de um manifesto para analisar o membro UserData do EVENT_RECORD.
EVENT_HEADER_FLAG_TRACE_MESSAGE
O provedor usou TraceMessage ou TraceMessageVa para registrar o evento em log. A maioria dos provedores não usa essas funções para gravar eventos, portanto, esse sinalizador normalmente indica que o evento foi gravado pelo WPP ( Pré-processador de rastreamento de software ) do Windows.
EVENT_HEADER_FLAG_NO_CPUTIME
Use ProcessorTime para o tempo de execução decorrido.
EVENT_HEADER_FLAG_32_BIT_HEADER
Indica que o provedor estava em execução em um computador de 32 bits ou em uma sessão WOW64.
EVENT_HEADER_FLAG_64_BIT_HEADER
Indica que o provedor estava em execução em um computador de 64 bits.
EVENT_HEADER_FLAG_CLASSIC_HEADER
Indica que o provedor usou TraceEvent para registrar o evento em log.

EventProperty

Indica a origem a ser usada para analisar os dados do evento.

Valor Significado
EVENT_HEADER_PROPERTY_XML
Indica que você precisa de um manifesto para analisar os dados do evento.
EVENT_HEADER_PROPERTY_FORWARDED_XML
Indica que os dados do evento contêm dentro de si uma descrição XML totalmente renderizada dos dados, portanto, você não precisa de um manifesto para analisar os dados do evento.
EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG
Indica que você precisa de uma classe MOF WMI para analisar os dados do evento.

ThreadId

Identifica o thread que gerou o evento.

ProcessId

Identifica o processo que gerou o evento.

TimeStamp

Contém a hora em que o evento ocorreu. A resolução é a hora do sistema, a menos que o membro ProcessTraceMode do EVENT_TRACE_LOGFILE contenha o sinalizador PROCESS_TRACE_MODE_RAW_TIMESTAMP, nesse caso, a resolução depende do valor do membro Wnode.ClientContext de EVENT_TRACE_PROPERTIES no momento em que o controlador criou a sessão.

ProviderId

GUID que identifica exclusivamente o provedor que registrou o evento.

EventDescriptor

Define as informações sobre o evento, como o identificador de evento e o nível de gravidade. Para obter detalhes, consulte EVENT_DESCRIPTOR.

DUMMYUNIONNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.KernelTime

Tempo de execução decorrido para instruções de modo kernel, em unidades de tempo de CPU. Se você estiver usando uma sessão privada, use o valor no membro ProcessorTime . Para obter mais informações, consulte Comentários.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.UserTime

Tempo de execução decorrido para instruções de modo de usuário, em unidades de tempo de CPU. Se você estiver usando uma sessão privada, use o valor no membro ProcessorTime . Para obter mais informações, consulte Comentários.

DUMMYUNIONNAME.ProcessorTime

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

ActivityId

Identificador que relaciona dois eventos. Para obter detalhes, consulte EventWriteTransfer.

Comentários

Você pode usar os membros KernelTime e UserTime para determinar o custo da CPU em unidades para um conjunto de instruções (os valores indicam o uso da CPU cobrado para esse thread no momento do registro em log). Por exemplo, se o Evento A e o Evento B forem registrados consecutivamente pelo mesmo thread e tiverem os números de uso da CPU 150 e 175, a atividade executada por esse thread entre os eventos A e B custará 25 unidades de tempo de CPU (175 – 150).

O TimerResolution da estrutura TRACE_LOGFILE_HEADER contém a resolução do temporizador de uso da CPU em unidades de 100 nanossegundos. Você pode usar a resolução do temporizador com o tempo de kernel e os valores de tempo do usuário para determinar a quantidade de tempo de CPU que o conjunto de instruções usou. Por exemplo, se a resolução do temporizador for de 156.250, 25 unidades de tempo de CPU serão 0,39 segundos (156.250 * 25 * 100 / 1.000.000.000). Essa é a quantidade de tempo de CPU (tempo não decorrido do relógio de parede) usado pelo conjunto de instruções entre os eventos A e B.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho evntcons.h (inclua Evntcons.h)

Confira também

EVENT_RECORD