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 |