EVENT_HEADER struttura (evntcons.h)
Definisce le informazioni sull'evento.
Sintassi
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;
Members
Size
Dimensioni del record dell'evento, in byte.
HeaderType
Riservato.
Flags
Flag che forniscono informazioni sull'evento, ad esempio il tipo di sessione in cui è stato registrato e se l'evento contiene dati estesi. Questo membro può contenere uno o più flag seguenti.
Valore | Significato |
---|---|
|
Il membro ExtendedData di EVENT_RECORD contiene dati. |
|
L'evento è stato registrato in una sessione privata. Usare ProcessorTime per il tempo di esecuzione trascorso. |
|
I dati dell'evento sono una stringa Unicode con terminazione null. Non è necessario un manifesto per analizzare il membro UserData di EVENT_RECORD. |
|
Il provider ha usato TraceMessage o TraceMessageVa per registrare l'evento. La maggior parte dei provider non usa queste funzioni per scrivere eventi, quindi questo flag indica in genere che l'evento è stato scritto dal preprocessore di traccia software Windows (WPP). |
|
Usare ProcessorTime per il tempo di esecuzione trascorso. |
|
Indica che il provider è in esecuzione in un computer a 32 bit o in una sessione WOW64. |
|
Indica che il provider è in esecuzione in un computer a 64 bit. |
|
Indica che il provider usato TraceEvent per registrare l'evento. |
EventProperty
Indica l'origine da usare per analizzare i dati dell'evento.
ThreadId
Identifica il thread che ha generato l'evento.
ProcessId
Identifica il processo che ha generato l'evento.
TimeStamp
Contiene l'ora in cui si è verificato l'evento. La risoluzione è tempo di sistema a meno che il membro ProcessTraceMode di EVENT_TRACE_LOGFILE contenga il flag di PROCESS_TRACE_MODE_RAW_TIMESTAMP, in cui la risoluzione dipende dal valore del membro Wnode.ClientContext di EVENT_TRACE_PROPERTIES al momento della creazione della sessione.
ProviderId
GUID che identifica in modo univoco il provider che ha registrato l'evento.
EventDescriptor
Definisce le informazioni sull'evento, ad esempio l'identificatore dell'evento e il livello di gravità. Per informazioni dettagliate, vedere EVENT_DESCRIPTOR.
DUMMYUNIONNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.KernelTime
Tempo di esecuzione trascorso per le istruzioni in modalità kernel, nelle unità temporali della CPU. Se si usa una sessione privata, usare invece il valore nel membro ProcessorTime . Per altre informazioni, vedere la sezione Osservazioni.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.UserTime
Tempo di esecuzione trascorso per le istruzioni in modalità utente, nelle unità di tempo della CPU. Se si usa una sessione privata, usare invece il valore nel membro ProcessorTime . Per altre informazioni, vedere la sezione Osservazioni.
DUMMYUNIONNAME.ProcessorTime
Per le sessioni private, il tempo di esecuzione trascorso per le istruzioni in modalità utente, nei tick della CPU.
ActivityId
Identificatore che correla due eventi. Per informazioni dettagliate, vedere EventWriteTransfer.
Commenti
È possibile usare i membri KernelTime e UserTime per determinare il costo della CPU in unità per un set di istruzioni (i valori indicano l'utilizzo della CPU addebitato a tale thread al momento della registrazione). Ad esempio, se l'evento A e l'evento B vengono registrati consecutivamente dallo stesso thread e hanno numeri di utilizzo della CPU 150 e 175, l'attività eseguita da tale thread tra eventi A e B costa 25 unità di tempo CPU (175 - 150).
TimerResolution della struttura TRACE_LOGFILE_HEADER contiene la risoluzione del timer di utilizzo della CPU in unità da 100 nanosecondi. È possibile usare la risoluzione timer con i valori di tempo del kernel e ora utente per determinare la quantità di tempo di CPU usata dal set di istruzioni. Ad esempio, se la risoluzione del timer è 156.250, 25 unità di tempo cpu sono 0,39 secondi (156.250 * 25 * 100 / 1.000.000.000.000). Si tratta della quantità di tempo della CPU (non trascorso l'ora dell'orologio a parete) utilizzata dal set di istruzioni tra eventi A e B.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | evntcons.h (include Evntcons.h) |