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
2 つの形式の Class の和集合。
DUMMYUNIONNAME2.Version
これは Class のメンバーのロールアップです。 下位バイトには Type が含まれており、次のバイトには Level が含まれており、最後の 2 バイトにはバージョンが含まれます。
DUMMYUNIONNAME2.Class
Class 構造体。
DUMMYUNIONNAME2.Class.Type
イベントの種類。 プロバイダーは、独自のイベントの種類を定義することも、次の表に示す定義済みのイベントの種類を使用することもできます。
EVENT_TRACE_TYPE_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
イベントのログ記録に使用しているイベント トレース クラスのバージョンを示します。 イベント トレース クラスのバージョンが 1 つしかない場合は、0 を指定します。 バージョンは、イベント データの解読に使用する MOF クラスをコンシューマーに指示します。
ThreadId
出力時に、イベントを生成したスレッドを識別します。
Windows 2000 では、 ThreadId は ULONGLONG 値であることに注意してください。
ProcessId
出力時に、イベントを生成したプロセスを識別します。
Windows 2000: このメンバーはサポートされていません。
TimeStamp
出力時には、イベントが発生した時刻が 1601 年 1 月 1 日午前 0 時から 100 ナノ秒間隔で格納されます。
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 パラメーターを参照してください)。
注釈
メンバーを設定する前に、必ずこの構造体のメモリを 0 に初期化してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | evntrace.h |