estrutura EVENT_HEADER (relogger.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 |
---|---|
|
O membro ExtendedData do EVENT_RECORD contém dados. |
|
O evento foi registrado em uma sessão privada. Use ProcessorTime para o tempo de execução decorrido. |
|
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. |
|
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. |
|
Use ProcessorTime para o tempo de execução decorrido. |
|
Indica que o provedor estava em execução em um computador de 32 bits ou em uma sessão WOW64. |
|
Indica que o provedor estava em execução em um computador de 64 bits. |
|
Indica que o provedor usou TraceEvent para registrar o evento. |
EventProperty
Indica a origem a ser usada 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 é hora do sistema, a menos que o membro ProcessTraceMode de 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 que foi 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 os valores de tempo de kernel e 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 (não tempo 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 | relogger.h (inclua Evntcons.h) |