Share via


EVENT_INSTANCE_HEADER結構 (evntrace.h)

EVENT_INSTANCE_HEADER 結構包含由 TraceEventInstance 所撰寫之所有事件通用的標準事件追蹤資訊。 結構也包含事件追蹤類別和相關父事件的註冊句柄,可用來追蹤相關事件之間的交易實例或階層式關聯性。

語法

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;

成員

Size

事件的位元組總數。 Size 必須包含 EVENT_INSTANCE_HEADER 結構的大小,加上附加至此結構之任何事件特定數據的大小。 大小必須小於事件追蹤會話緩衝區的大小減去 72 (0x48) 。

DUMMYUNIONNAME

各種結構和成員的聯集。

DUMMYUNIONNAME.FieldTypeFlags

保留的。

DUMMYUNIONNAME.DUMMYSTRUCTNAME

保留的。

DUMMYUNIONNAME.DUMMYSTRUCTNAME.HeaderType

保留的。

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MarkerFlags

保留的。

DUMMYUNIONNAME2

類別的聯集,以兩種形式表示。

DUMMYUNIONNAME2.Version

這是 Class 成員的匯總。 低序位元組包含 Type、下一個字節包含 Level,最後兩個字節包含版本。

DUMMYUNIONNAME2.Class

類別結構。

DUMMYUNIONNAME2.Class.Type

事件類別。 提供者可以定義自己的事件類型,或使用下表所列的預先定義事件類型。

  • EVENT_TRACE_TYPE_CHECKPOINT

    Checkpoint 事件。 用於不在活動開頭或結尾的事件。

  • EVENT_TRACE_TYPE_DC_END

    數據收集結束事件。

  • EVENT_TRACE_TYPE_DC_START

    數據收集開始事件。

  • EVENT_TRACE_TYPE_DEQUEUE

    Dequeue 事件。 活動在開始之前排入佇列時使用。 使用EVENT_TRACE_TYPE_START標記工作專案排入佇列的時間。 使用清除佇列事件類型來標記專案實際開始工作時的時間。 使用EVENT_TRACE_TYPE_END來標記專案完成工作時的時間。

  • EVENT_TRACE_TYPE_END

    結束事件。 使用 來追蹤多步驟事件的最終狀態。

  • EVENT_TRACE_TYPE_EXTENSION

    擴充事件。 用於屬於上一個事件接續的事件。 例如,當事件追蹤記錄的數據超過會話緩衝區可以容納的數據時,請使用擴充事件類型。

  • EVENT_TRACE_TYPE_INFO

    資訊事件。 這是預設事件類型。

  • EVENT_TRACE_TYPE_REPLY

    回復事件。 當要求資源的應用程式可以接收多個回應時使用。 例如,如果用戶端應用程式要求 URL,而 Web 伺服器會藉由傳送數個檔案來回復,則收到的每個檔案都可以標示為回復事件。

  • EVENT_TRACE_TYPE_START

    啟動事件。 使用 來追蹤多步驟事件的初始狀態。

如果您的事件追蹤類別 GUID 支援多個事件類型,取用者會使用事件類型來判斷事件以及如何解譯其內容。

DUMMYUNIONNAME2.Class.Level

提供者定義的值,定義用來產生事件的嚴重性層級。 值的範圍從 0 到 255。 控制器會在呼叫 EnableTraceEx2 函式時指定嚴重性層級。 提供者會從其 ControlCallback 實作呼叫 GetTraceEnableLevel 函式,以擷取嚴重性層級。 提供者會使用 值來設定這個成員。

ETW 定義下列嚴重性層級。 選取高於 1 的層級也會包含較低層級的事件。 例如,如果控制器指定TRACE_LEVEL_WARNING (3) ,提供者也會產生TRACE_LEVEL_FATAL (1) ,TRACE_LEVEL_ERROR (2) 事件。

意義
TRACE_LEVEL_CRITICAL (1) 異常結束或終止事件
TRACE_LEVEL_ERROR (2) 嚴重錯誤事件
TRACE_LEVEL_WARNING (3) 警告事件,例如配置失敗
TRACE_LEVEL_INFORMATION (4) 非錯誤事件,例如進入或結束事件
TRACE_LEVEL_VERBOSE (5) 詳細的追蹤事件

DUMMYUNIONNAME2.Class.Version

指出您用來記錄事件的事件追蹤類別版本。 如果事件追蹤類別只有一個版本,請指定零。 版本會告知取用者要用來譯碼事件數據的MOF類別。

ThreadId

在輸出中,識別產生事件的線程。

請注意,在 Windows 2000 上, ThreadIdULONGLONG 值。

ProcessId

在輸出中,識別產生事件的進程。

Windows 2000: 不支援此成員。

TimeStamp

在輸出中,包含事件發生的時間,以100奈秒間隔為單位,自1601年1月1日午夜起。

RegHandle

已註冊事件追蹤類別的句柄。 在呼叫 TraceEventInstance 函式之前設定此屬性。

RegisterTraceGuids 函式會建立此句柄 (請參閱 TraceGuidReg 參數) 。

InstanceId

在輸出中,包含與 RegHandle 相關聯的事件追蹤實例識別碼。

ParentInstanceId

在輸出中,包含與 ParentRegHandle 相關聯的事件追蹤實例識別碼。

DUMMYUNIONNAME3

結構與成員的聯集。

DUMMYUNIONNAME3.DUMMYSTRUCTNAME

結構,包含下列成員。

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.KernelTime

核心模式指令的經過運行時間,以 CPU 刻度為單位。 如果您使用私人會話,請改用 ProcessorTime 成員中的值。

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.UserTime

在 CPU 刻度中,使用者模式指示的經過運行時間。 如果您使用私人會話,請改用 ProcessorTime 成員中的值。

DUMMYUNIONNAME3.ProcessorTime

針對私人會話,CPU 刻度表示使用者模式指示的經過運行時間。

DUMMYUNIONNAME3.DUMMYSTRUCTNAME2

結構與成員的聯集。

DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.EventId

事件識別項。

DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.Flags

必須包含 WNODE_FLAG_TRACED_GUID,也可能包含下列任何組合。

  • WNODE_FLAG_USE_GUID_PTR

    指定 GuidPtr 成員是否包含類別 GUID。

  • WNODE_FLAG_USE_MOF_PTR

    指定 MOF_FIELD 結構的數位是否包含附加至這個 結構的事件數據。 陣列中的元素數目限制為 MAX_MOF_FIELDS

ParentRegHandle

父事件的已註冊事件追蹤類別的句柄。 如果您想要追蹤 (相關事件之間的父元素/子元素) 階層式關聯性,請在呼叫 TraceEventInstance 函式之前設定此屬性。

RegisterTraceGuids 函式會建立此句柄 (請參閱 TraceGuidReg 參數) 。

備註

設定任何成員之前,請務必將此結構的記憶體初始化為零。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
標頭 evntrace.h

另請參閱

TraceEventInstance