EVENT_HEADER構造体 (relogger.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
ログに記録されたセッションの種類や、イベントに拡張データが含まれている場合など、イベントに関する情報を提供するフラグ。 このメンバーには、次のフラグを 1 つ以上含めることができます。
値 | 意味 |
---|---|
|
EVENT_RECORD の ExtendedData メンバーにはデータが含まれています。 |
|
イベントはプライベート セッションに記録されました。 実行経過時間には ProcessorTime を使用します。 |
|
イベント データは null で終わる Unicode 文字列です。 EVENT_RECORDの UserData メンバーを解析するためにマニフェストは必要ありません。 |
|
プロバイダーは 、TraceMessage または TraceMessageVa を使用してイベントをログに記録しました。 ほとんどのプロバイダーは、これらの関数を使用してイベントを書き込まないので、このフラグは通常、イベントが Windows ソフトウェア トレース プリプロセッサ (WPP) によって書き込まれたことを示します。 |
|
実行経過時間には ProcessorTime を使用します。 |
|
プロバイダーが 32 ビット コンピューターまたは WOW64 セッションで実行されていることを示します。 |
|
プロバイダーが 64 ビット コンピューターで実行されていることを示します。 |
|
プロバイダーが TraceEvent を使用してイベントをログに記録したことを示します。 |
EventProperty
イベント データの解析に使用するソースを示します。
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
2 つのイベントを関連付けする識別子。 詳細については、「 EventWriteTransfer」を参照してください。
注釈
KernelTime メンバーと UserTime メンバーを使用して、一連の命令の CPU コストをユニット単位で決定できます (値は、ログ記録時にそのスレッドに課金される CPU 使用率を示します)。 たとえば、イベント A とイベント B が同じスレッドによって連続してログに記録され、CPU 使用率が 150 と 175 の場合、イベント A と B の間でそのスレッドによって実行されたアクティビティの CPU 時間単位は 25 (175 から 150) になります。
TRACE_LOGFILE_HEADER構造体の TimerResolution には、CPU 使用率タイマーの解像度が 100 ナノ秒単位で含まれています。 タイマー解決をカーネル時間とユーザー時間の値と共に使用して、一連の命令が使用した CPU 時間を決定できます。 たとえば、タイマーの解像度が 156,250 の場合、25 CPU 時間単位は 0.39 秒 (156,250 * 25 * 100 / 1,000,000,000) です。 これは、イベント A と B の間の命令セットで使用される CPU 時間 (壁時計時間が経過していない) の量です。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
Header | relogger.h (Evntcons.h を含む) |