EVENT_HEADER結構 (evntcons.h)
定義事件的相關信息。
語法
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;
成員
Size
事件記錄的大小,以位元組為單位。
HeaderType
保留的。
Flags
旗標,提供事件的相關信息,例如記錄的會話類型,以及事件是否包含擴充數據。 此成員可以包含下列一或多個旗標。
值 | 意義 |
---|---|
|
EVENT_RECORD的 ExtendedData 成員包含數據。 |
|
事件已記錄至私人會話。 使用 ProcessorTime 進行經過的運行時間。 |
|
事件數據是 Null 終止的 Unicode 字串。 您不需要指令清單來剖析 EVENT_RECORD 的 UserData 成員。 |
|
提供者使用 TraceMessage 或 TraceMessageVa 來記錄事件。 大部分的提供者不會使用這些函式來寫入事件,因此此旗標通常表示事件是由 Windows 軟體追蹤預處理器 所撰寫, (WPP) 。 |
|
使用 ProcessorTime 進行經過的運行時間。 |
|
指出提供者是在 32 位電腦上或在 WOW64 工作階段中執行。 |
|
指出提供者是在64位電腦上執行。 |
|
指出提供者使用 TraceEvent 來記錄事件。 |
EventProperty
指出用來剖析事件數據的來源。
值 | 意義 |
---|---|
|
表示您需要指令清單來剖析事件數據。 |
|
表示事件數據本身包含數據的完整轉譯 XML 描述,因此您不需要指令清單來剖析事件數據。 |
|
表示您需要 WMI MOF 類別來剖析事件數據。 |
ThreadId
識別已產生事件的執行緒。
ProcessId
識別已產生事件的處理序。
TimeStamp
包含事件發生的時間。 除非 EVENT_TRACE_LOGFILE 的 ProcessTraceMode 成員包含 PROCESS_TRACE_MODE_RAW_TIMESTAMP 旗標,否則解析是系統時間,在此情況下,解析取決於控制器建立會話時EVENT_TRACE_PROPERTIES的 Wnode.ClientContext 成員值。
ProviderId
可唯一識別記錄事件的提供者的 GUID。
EventDescriptor
定義事件的相關信息,例如事件標識碼和嚴重性層級。 如需詳細資訊,請參閱 EVENT_DESCRIPTOR。
DUMMYUNIONNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.KernelTime
核心模式指令的經過運行時間,以 CPU 時間單位為單位。 如果您使用私人會話,請改用 ProcessorTime 成員中的值。 如需詳細資訊,請參閱<備註>。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.UserTime
使用者模式指令的經過運行時間,以 CPU 時間單位為單位。 如果您使用私人會話,請改用 ProcessorTime 成員中的值。 如需詳細資訊,請參閱<備註>。
DUMMYUNIONNAME.ProcessorTime
針對私人會話,CPU 刻度中使用者模式指示所耗用的運行時間。
ActivityId
與兩個事件相關的標識碼。 如需詳細資訊,請參閱 EventWriteTransfer。
備註
您可以使用 KernelTime 和 UserTime 成員來判斷一組指令的 CPU 成本, (值表示記錄時該線程所收取的 CPU 使用量) 。 例如,如果事件 A 和事件 B 會由相同的線程連續記錄,而且其 CPU 使用量號碼為 150 和 175,則由事件 A 與 B 之間的該線程所執行的活動成本為 25 個 CPU 時間單位, (175 – 150) 。
TRACE_LOGFILE_HEADER 結構的 TimerResolution 包含以 100 奈秒為單位的 CPU 使用量定時器解析度。 您可以使用定時器解析度搭配核心時間和用戶時間值,以判斷所使用的指令集 CPU 時間量。 例如,如果定時器解析度為 156,250,則 25 個 CPU 時間單位為 0.39 秒, (156,250 * 25 * 100 / 1,000,000,000,000) 。 這是一組事件 A 與 B 之間指令所使用的 CPU 時間 (未經過的時鐘時間) 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
標頭 | evntcons.h (包括 Evntcons.h) |