PEVENT_CALLBACK コールバック関数 (evntrace.h)
ETW イベント コンシューマーは、トレース処理セッションからイベントを受信するために、このコールバックを実装します。 このコールバックは、新しいコードでは使用しないでください。 代わりに、 EventRecordCallback を実装します。
PEVENT_CALLBACK型は、このコールバック関数へのポインターです。 EventCallback は、アプリケーション定義関数名のプレースホルダーです。
構文
PEVENT_CALLBACK PeventCallback;
void PeventCallback(
[in] PEVENT_TRACE pEvent
)
{...}
パラメーター
[in] pEvent
イベント情報を含む EVENT_TRACE 構造体へのポインター。
戻り値
なし
解説
注意
このコールバックは、イベントに関する不完全な情報を受け取り、 TdhGetEventInformation などのイベント デコード ヘルパー API と互換性がないため、廃止されています。 EventCallback を実装する代わりに、EventRecordCallback を実装します。
ETW が呼び出してイベントを配信する関数を指定するには、OpenTrace 関数に渡すEVENT_TRACE_LOGFILE構造体の EventCallback メンバーを設定します。
注意
EventCallback 関数が ProcessTrace から文字化けしたデータを受信している場合は、OpenTrace に提供された構造体の EVENT_TRACE_LOGFILE
フィールドでProcessTraceMode
指定されたフラグをダブルチェックします。 EVENT_TRACE_LOGFILE
の EventCallback フィールドと EventRecordCallback フィールドは、共用体のメンバーと重複しています。 フィールドに フラグがProcessTraceMode
PROCESS_TRACE_MODE_EVENT_RECORD
含まれている場合、ProcessTrace は EventRecordCallback 関数シグネチャを使用してコールバックを呼び出します。 それ以外の場合、 ProcessTrace は EventCallback 関数シグネチャを使用してコールバックを呼び出します。
OpenTrace を使用してトレース処理セッションを作成した後、ProcessTrace 関数を呼び出してイベントの受信を開始します。
ProcessTrace は、トレースからのイベントの処理を開始するときに、ログに記録されたイベントのデータではなく、トレース (メタデータ) に関するデータを含む 1 つ以上の合成イベントを使用してコールバックを呼び出す場合があります。 これらの合成イベントでは 、Header.Guid が に EventTraceGuid
設定され、合成イベントの内容に基づいて Header.Class.Type が設定されます。 たとえば、各トレース ファイルの最初のイベントは、 TRACE_LOGFILE_HEADER情報を 含む 0 型の合成イベントになります。
受信する他のすべてのイベントには、プロバイダー固有のイベント データが含まれます。 受信したイベントの種類を決定するには、EVENT_TRACEの Header.Guid メンバーと Header.Class.Type メンバーを使用します。 既知のイベント型のデコード ロジックをハードコーディングすることはできますが、ほとんどのイベントは、名前空間の \\root\wmi
システムに登録されている MOF スキーマ情報を使用してデコードされます。 イベントの MOF スキーマを使用してイベントを解釈する方法については、「イベントの 使用」を参照してください。
例
EventCallback 関数の実装例については、「MOF を使用したイベント データの取得」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | evntrace.h |