次の方法で共有


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_LOGFILEEventCallback フィールドと EventRecordCallback フィールドは、共用体のメンバーと重複しています。 フィールドに フラグがProcessTraceModePROCESS_TRACE_MODE_EVENT_RECORD含まれている場合、ProcessTraceEventRecordCallback 関数シグネチャを使用してコールバックを呼び出します。 それ以外の場合、 ProcessTraceEventCallback 関数シグネチャを使用してコールバックを呼び出します。

OpenTrace を使用してトレース処理セッションを作成した後、ProcessTrace 関数を呼び出してイベントの受信を開始します。

ProcessTrace は、トレースからのイベントの処理を開始するときに、ログに記録されたイベントのデータではなく、トレース (メタデータ) に関するデータを含む 1 つ以上の合成イベントを使用してコールバックを呼び出す場合があります。 これらの合成イベントでは 、Header.Guid が に EventTraceGuid 設定され、合成イベントの内容に基づいて Header.Class.Type が設定されます。 たとえば、各トレース ファイルの最初のイベントは、 TRACE_LOGFILE_HEADER情報を 含む 0 型の合成イベントになります。

受信する他のすべてのイベントには、プロバイダー固有のイベント データが含まれます。 受信したイベントの種類を決定するには、EVENT_TRACEHeader.Guid メンバーと Header.Class.Type メンバーを使用します。 既知のイベント型のデコード ロジックをハードコーディングすることはできますが、ほとんどのイベントは、名前空間の \\root\wmi システムに登録されている MOF スキーマ情報を使用してデコードされます。 イベントの MOF スキーマを使用してイベントを解釈する方法については、「イベントの 使用」を参照してください。

EventCallback 関数の実装例については、「MOF を使用したイベント データの取得」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー evntrace.h

こちらもご覧ください

イベントの使用

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace