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 では、 ThreadIdULONGLONG 値であることに注意してください。

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

こちらもご覧ください

TraceEventInstance