EventProviderEnabled 関数 (evntprov.h)
イベント プロバイダーがイベントの Level と Keyword に基づいて特定のイベントを生成する必要があるかどうかを判断します。
指定されたプロバイダーから指定されたイベントをリッスンしているセッションがないことを ETW が迅速に判断できる場合は FALSE を 返します。 それ以外の場合は TRUE を返します。
構文
BOOLEAN EVNTAPI EventProviderEnabled(
[in] REGHANDLE RegHandle,
[in] UCHAR Level,
[in] ULONGLONG Keyword
);
パラメーター
[in] RegHandle
プロバイダーの登録ハンドル。 ハンドルは EventRegister から取得されます。
RegHandle が NULL の場合、EventProviderEnabled は FALSE を返します。
[in] Level
イベントの重大度または重要度を表すために使用される 8 ビットの数値。 イベント レベルの値の詳細については、「 EVENT_DESCRIPTOR 」を参照してください。
[in] Keyword
イベント カテゴリのセット内のイベントのメンバーシップを示すために使用される 64 ビットビットマスク。 イベントキーワード (keyword)値の詳細については、「EVENT_DESCRIPTOR」を参照してください。
戻り値
指定されたプロバイダーから指定されたイベントをリッスンしているセッションがないことを ETW が迅速に判断できる場合は FALSE を 返します。 それ以外の場合は TRUE を返します。
解説
この API は、プロバイダー ハンドル、イベント レベル、およびイベント キーワード (keyword)に基づいて、イベントが有効になっているかどうか (つまり、イベント コンシューマー セッションがイベントの受信に関心があるかどうかを判断する簡単な方法を提供します。
注意
この API は、保守的なクイック テストを実行します。 この API は、後続の詳細なフィルター処理によって、イベントを記録するセッションが必要ないと判断される場合に true を返す可能性があります。
この API には、 EventEnabled によって提供される機能と同様の機能が用意されています。 プロバイダーがイベントの完全な EVENT_DESCRIPTORにアクセスできる場合、プロバイダーは EventEnabled を使用する必要があります。 プロバイダーがイベントの Level と Keyword にのみアクセスできる場合、プロバイダーは EventProviderEnabled を使用する必要があります。
ほとんどのイベント プロバイダーは、 EventProviderEnabled を直接呼び出しません。
- EventWrite API には独自の EventProviderEnabled テストが含まれており、イベントが有効になっていない場合は直ちにが返されます。
- ほとんどの ETW プロバイダーは、 EventWrite または EventProviderEnabled を直接呼び出す代わりに、ETW フレームワーク (マニフェストやトレース ログなど) を使用します。 ETW フレームワークは通常、 EventProviderEnabled を呼び出す代わりに使用する必要がある独自のイベント対応 API を提供します。
- ETW フレームワークの実装は、通常、EventProviderEnabled を呼び出すのではなく、独自のプロバイダーの状態をチェックします。
詳細については、「 EventEnabled」を参照してください。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | evntprov.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |