次の方法で共有


WMIDPREQUEST コールバック関数 (evntrace.h)

RegisterTraceGuids ベース ("クラシック") イベント プロバイダーは、コントローラーから有効または無効の通知要求を受信するために、この関数を実装します。

WMIDPREQUEST 型は、このコールバック関数へのポインターを定義します。 ControlCallback は、アプリケーション定義関数名のプレースホルダーです。

構文

WMIDPREQUEST Wmidprequest;

ULONG Wmidprequest(
  [in] WMIDPREQUESTCODE RequestCode,
       PVOID RequestContext,
       ULONG *BufferSize,
  [in] PVOID Buffer
)
{...}

パラメーター

[in] RequestCode

要求コード。 これは、次のいずれかの値になります。

意味
WMI_ENABLE_EVENTS プロバイダーまたは変更プロバイダーの構成を有効にします。
WMI_DISABLE_EVENTS プロバイダーを無効にします。

RequestContext

プロバイダー定義のコンテキスト。 プロバイダーは、 の RequestContext パラメーターを使用します。
コンテキストを指定する RegisterTraceGuids

BufferSize

内部使用のために予約されています。

[in] Buffer

プロバイダー が有効 または無効になっているイベント トレース セッションに関する情報を含むWNODE_HEADER構造体へのポインター。

戻り値

コールバックが成功した場合は、ERROR_SUCCESSを返す必要があります。 ETW は、プロバイダーを有効にするためにコントローラーが EnableTrace を 呼び出し、プロバイダーがまだ RegisterTraceGuids を呼び出していない場合を除き、この関数の戻り値を無視します。 これが発生すると、登録が成功した場合、 RegisterTraceGuids はこのコールバックの戻り値を返します。

注釈

この関数は RegisterTraceGuids 関数を使用して指定します。 コントローラーが EnableTrace 関数を呼び出して有効化フラグまたはレベルを有効、無効、または変更すると、ETW はこのコールバックを呼び出します。 プロバイダーは 、RequestCode 値に基づいてそれ自体を有効または無効にします。 通常、プロバイダーはこの値を使用して、有効な状態を示すグローバル フラグを設定します。

プロバイダーは、有効または無効の解釈を定義します。 一般に、プロバイダーが有効になっている場合はイベントが生成されますが、無効になっている間は生成されません。

ETW は有効化フラグを渡せず、コントローラーがこのコールバックに EnableTrace 関数に渡すレベルを有効にします。 この情報を取得するには、 GetTraceEnableFlags 関数と GetTraceEnableLevel 関数をそれぞれ呼び出します。

また、今後の呼び出しのために、このコールバックでセッション ハンドルを取得する必要があります。 セッション ハンドルを取得するには、 GetTraceLoggerHandle 関数を呼び出します。

コールバック関数は、LoadLibrary が発生する可能性のあるもの (具体的にはローダー ロックを必要とするもの) を呼び出してはなりません。

ControlCallback 関数の実装例については、「クラシック イベントの記述」を参照してください。

要件

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

こちらもご覧ください

EnableTrace

GetTraceEnableFlags

GetTraceEnableLevel

GetTraceLoggerHandle

RegisterTraceGuids

WNODE_HEADER