次の方法で共有


EventEnabled 関数 (evntprov.h)

イベント プロバイダーがイベントのEVENT_DESCRIPTORに基づいて特定のイベントを生成するかどうかを決定します。

指定されたプロバイダーから指定されたイベントをリッスンしているセッションがないことを ETW が迅速に判断できる場合は FALSE を 返します。 それ以外の場合は TRUE を返します。

構文

BOOLEAN EVNTAPI EventEnabled(
  [in] REGHANDLE          RegHandle,
  [in] PCEVENT_DESCRIPTOR EventDescriptor
);

パラメーター

[in] RegHandle

プロバイダーの登録ハンドル。 ハンドルは EventRegister から取得されます。

RegHandleNULL の場合、EventEnabledFALSE を返します

[in] EventDescriptor

イベント が有効になっているかどうかを判断するために使用される情報を提供するEVENT_DESCRIPTOR。 これには、イベントのレベル (重大度) とキーワード (カテゴリ) が含まれます。

戻り値

プロバイダーがイベントの生成をスキップする必要がある場合は FALSE を返します。つまり、ETW が指定された記述子を持つ指定されたプロバイダーからのイベントを記録するイベント コレクション セッションがないことを迅速に判断できる場合は FALSE を 返します。 それ以外の場合は、プロバイダーがイベントを生成する必要があることを示す TRUE を返します。

解説

この API は、プロバイダー ハンドルとイベント記述子に基づいて、イベントが有効になっているかどうか (つまり、イベント コンシューマー セッションがイベントの受信に関心があるかどうかを判断する簡単な方法) を提供します。

Note

この API は、保守的なクイック テストを実行します。 この API は、後続の詳細なフィルター処理によって、イベントを記録するセッションが必要ないと判断される場合に true を返す可能性があります。

この API には、 EventProviderEnabled によって提供される機能と同様の機能が用意されています。 プロバイダーがイベントの完全な EVENT_DESCRIPTORにアクセスできる場合、プロバイダーは EventEnabled を使用する必要があります。 プロバイダーがイベントの Level と Keyword にのみアクセスできる場合、プロバイダーは EventProviderEnabled を使用する必要があります。

ほとんどのイベント プロバイダーは、 EventEnabled を 直接呼び出しません。

  • EventWrite API には独自の EventEnabled テストが含まれており、イベントが有効になっていない場合は直ちにが返されます。
  • ほとんどの ETW プロバイダーは、 EventWrite または EventEnabled を直接呼び出す代わりに、ETW フレームワーク (マニフェストやトレース ログなど) を使用します。 ETW フレームワークは通常、 EventEnabled を呼び出す代わりに使用する必要がある独自のイベント対応 API を提供します。
  • ETW フレームワークの実装は、通常、EventEnabled を呼び出すのではなく、独自のプロバイダーの状態をチェックします。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー evntprov.h
Library Advapi32.lib
[DLL] Advapi32.dll

関連項目

EventProviderEnabled

EVENT_DESCRIPTOR