Condividi tramite


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
EVENT_HEADER_FLAG_EXTENDED_INFO
Il membro ExtendedData di EVENT_RECORD contiene dati.
EVENT_HEADER_FLAG_PRIVATE_SESSION
L'evento è stato registrato in una sessione privata. Usare ProcessorTime per il tempo di esecuzione trascorso.
EVENT_HEADER_FLAG_STRING_ONLY
I dati dell'evento sono una stringa Unicode con terminazione null. Non è necessario un manifesto per analizzare il membro UserData di EVENT_RECORD.
EVENT_HEADER_FLAG_TRACE_MESSAGE
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).
EVENT_HEADER_FLAG_NO_CPUTIME
Usare ProcessorTime per il tempo di esecuzione trascorso.
EVENT_HEADER_FLAG_32_BIT_HEADER
Indica che il provider è in esecuzione in un computer a 32 bit o in una sessione WOW64.
EVENT_HEADER_FLAG_64_BIT_HEADER
Indica che il provider è in esecuzione in un computer a 64 bit.
EVENT_HEADER_FLAG_CLASSIC_HEADER
Indica che il provider usato TraceEvent per registrare l'evento.

EventProperty

Indica l'origine da usare per analizzare i dati dell'evento.

Valore Significato
EVENT_HEADER_PROPERTY_XML
Indica che è necessario un manifesto per analizzare i dati dell'evento.
EVENT_HEADER_PROPERTY_FORWARDED_XML
Indica che i dati dell'evento contengono all'interno di sé una descrizione XML completamente sottoposta a rendering dei dati, pertanto non è necessario un manifesto per analizzare i dati dell'evento.
EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG
Indica che è necessaria una classe MOF WMI 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)

Vedi anche

EVENT_RECORD