struttura EVENT_INSTANCE_HEADER (evntrace.h)
La struttura EVENT_INSTANCE_HEADER contiene informazioni di traccia eventi standard comuni a tutti gli eventi scritti da TraceEventInstance. La struttura contiene anche handle di registrazione per la classe di traccia eventi e l'evento padre correlato, che vengono usati per tracciare le istanze di una transazione o relazioni gerarchiche tra gli eventi correlati.
Sintassi
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;
Members
Size
Numero totale di byte dell'evento. Le dimensioni devono includere le dimensioni della struttura EVENT_INSTANCE_HEADER , oltre alle dimensioni di tutti i dati specifici dell'evento aggiunti a questa struttura. Le dimensioni devono essere inferiori alle dimensioni del buffer della sessione di traccia eventi meno 72 (0x48).
DUMMYUNIONNAME
Unione di varie strutture e membri.
DUMMYUNIONNAME.FieldTypeFlags
Riservato.
DUMMYUNIONNAME.DUMMYSTRUCTNAME
Riservato.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.HeaderType
Riservato.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MarkerFlags
Riservato.
DUMMYUNIONNAME2
Unione di Classe in due forme.
DUMMYUNIONNAME2.Version
Si tratta di un rollup dei membri della classe. Il byte con ordine basso contiene il tipo, il byte successivo contiene il livello e gli ultimi due byte contengono la versione.
DUMMYUNIONNAME2.Class
Struttura Classe.
DUMMYUNIONNAME2.Class.Type
Tipo di evento. Un provider può definire i propri tipi di evento o usare i tipi di evento predefiniti elencati nella tabella seguente.
EVENT_TRACE_TYPE_CHECKPOINT
Evento checkpoint. Usare per un evento che non si trova all'inizio o alla fine di un'attività.
EVENT_TRACE_TYPE_DC_END
Evento finale raccolta dati.
EVENT_TRACE_TYPE_DC_START
Evento di inizio raccolta dati.
EVENT_TRACE_TYPE_DEQUEUE
Evento di rimozione dalla coda. Usare quando un'attività viene accodata prima dell'inizio. Usare EVENT_TRACE_TYPE_START per contrassegnare l'ora di accodamento di un elemento di lavoro. Usare il tipo di evento di rimozione dalla coda per contrassegnare l'ora in cui inizia effettivamente il lavoro sull'elemento. Usare EVENT_TRACE_TYPE_END per contrassegnare l'ora di completamento dell'elemento.
EVENT_TRACE_TYPE_END
Evento finale. Usare per tracciare lo stato finale di un evento in più passaggi.
EVENT_TRACE_TYPE_EXTENSION
Evento di estensione. Usare per un evento che rappresenta una continuazione di un evento precedente. Ad esempio, usare il tipo di evento di estensione quando una traccia eventi registra più dati di quelli che possono essere inseriti in un buffer di sessione.
EVENT_TRACE_TYPE_INFO
Evento informativo. Questo è il tipo di evento predefinito.
EVENT_TRACE_TYPE_REPLY
Evento di risposta. Usare quando un'applicazione che richiede risorse può ricevere più risposte. Ad esempio, se un'applicazione client richiede un URL e il server Web risponde inviando diversi file, ogni file ricevuto può essere contrassegnato come evento di risposta.
EVENT_TRACE_TYPE_START
Evento di avvio. Usare per tracciare lo stato iniziale di un evento in più passaggi.
Se il GUID della classe di traccia di eventi supporta più tipi di evento, i consumer useranno il tipo di evento per determinare l'evento e come interpretarne il contenuto.
DUMMYUNIONNAME2.Class.Level
Valore definito dal provider che definisce il livello di gravità usato per generare l'evento. Il valore è compreso tra 0 e 255. Il controller specifica il livello di gravità quando chiama la funzione EnableTraceEx2 . Il provider recupera il livello di gravità chiamando la funzione GetTraceEnableLevel dall'implementazionecontrolCallback . Il provider usa il valore per impostare questo membro.
ETW definisce i livelli di gravità seguenti. La selezione di un livello superiore a 1 includerà anche gli eventi per i livelli inferiori. Ad esempio, se il controller specifica TRACE_LEVEL_WARNING (3), il provider genera anche TRACE_LEVEL_FATAL (1) e TRACE_LEVEL_ERROR (2).
Valore | Significato |
---|---|
TRACE_LEVEL_CRITICAL (1) | Eventi di chiusura o chiusura anomali |
TRACE_LEVEL_ERROR (2) | Eventi di errore gravi |
TRACE_LEVEL_WARNING (3) | Eventi di avviso, ad esempio errori di allocazione |
TRACE_LEVEL_INFORMATION (4) | Eventi non di errore, ad esempio eventi di ingresso o uscita |
TRACE_LEVEL_VERBOSE (5) | Eventi di traccia dettagliati |
DUMMYUNIONNAME2.Class.Version
Indica la versione della classe di traccia evento usata per registrare l'evento. Specificare zero se è presente una sola versione della classe di traccia eventi. La versione indica al consumer quale classe MOF usare per decifrare i dati dell'evento.
ThreadId
Nell'output identifica il thread che ha generato l'evento.
Si noti che in Windows 2000 ThreadId era un valore di ULONGLONG .
ProcessId
Nell'output identifica il processo che ha generato l'evento.
Windows 2000: Questo membro non è supportato.
TimeStamp
Nell'output contiene l'ora in cui si è verificato l'evento, in intervalli di 100 nanosecondi dalla mezzanotte del 1° gennaio 1601.
RegHandle
Handle in una classe di traccia eventi registrata. Impostare questa proprietà prima di chiamare la funzione TraceEventInstance .
La funzione RegisterTraceGuids crea questo handle (vedere il parametro TraceGuidReg ).
InstanceId
Nell'output contiene l'identificatore dell'istanza di traccia eventi associato a RegHandle.
ParentInstanceId
Nell'output contiene l'identificatore dell'istanza di traccia eventi associato a ParentRegHandle.
DUMMYUNIONNAME3
Unione di struct e membri.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME
Struttura contenente i membri seguenti.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.KernelTime
Tempo di esecuzione trascorso per le istruzioni in modalità kernel, in tick della CPU. Se si usa una sessione privata, usare invece il valore nel membro ProcessorTime .
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.UserTime
Tempo di esecuzione trascorso per le istruzioni in modalità utente, in tick della CPU. Se si usa una sessione privata, usare invece il valore nel membro ProcessorTime .
DUMMYUNIONNAME3.ProcessorTime
Per le sessioni private, il tempo di esecuzione trascorso per le istruzioni in modalità utente, in tick della CPU.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2
Unione di struct e membri.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.EventId
Identificatore dell'evento.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.Flags
Deve contenere WNODE_FLAG_TRACED_GUID e può contenere anche qualsiasi combinazione di quanto segue.
WNODE_FLAG_USE_GUID_PTR
Specificare se il membro GuidPtr contiene il GUID della classe.
WNODE_FLAG_USE_MOF_PTR
Specificare se una matrice di strutture MOF_FIELD contiene i dati dell'evento aggiunti a questa struttura. Il numero di elementi nella matrice è limitato a MAX_MOF_FIELDS.
ParentRegHandle
Handle per una classe di traccia eventi registrata di un evento padre. Impostare questa proprietà prima di chiamare la funzione TraceEventInstance se si desidera tracciare una relazione gerarchica (elemento padre/elemento figlio) tra gli eventi correlati.
La funzione RegisterTraceGuids crea questo handle (vedere il parametro TraceGuidReg ).
Commenti
Assicurarsi di inizializzare la memoria per questa struttura su zero prima di impostare i membri.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Intestazione | evntrace.h |