Condividi tramite


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

Vedi anche

TraceEventInstance