次の方法で共有


FltEnumerateFilters 関数 (fltkernel.h)

FltEnumerateFilters ルーチンは、システムに登録されているすべてのミニフィルター ドライバーを列挙します。

構文

NTSTATUS FLTAPI FltEnumerateFilters(
  [out] PFLT_FILTER *FilterList,
  [in]  ULONG       FilterListSize,
  [out] PULONG      NumberFiltersReturned
);

パラメーター

[out] FilterList

不透明なフィルター ポインターの配列を受け取る呼び出し元によって割り当てられたバッファーへのポインター。 このパラメーターは省略可能であり、FilterListSize パラメーターの値が 0 の場合 NULL できます。 FilterListSize が入力時にゼロで、FilterList が NULL 場合、NumberFiltersReturned パラメーターは見つかったミニフィルター ドライバーの数を受け取ります。

[in] FilterListSize

FilterList パラメーターが保持できるバッファーが指す不透明なフィルター ポインターの数。 このパラメーターは省略可能で、0 にすることができます。 FilterListSize が入力時にゼロで、FilterList が NULL 場合、NumberFiltersReturned パラメーターは見つかったミニフィルター ドライバーの数を受け取ります。

[out] NumberFiltersReturned

FilterList パラメーターが指す配列で返される不透明なフィルター ポインターの数を受け取る呼び出し元によって割り当てられた変数へのポインター。 FilterListSize パラメーター値が小さすぎて、FilterList が入力時NULL でない場合、FltEnumerateFilters はSTATUS_BUFFER_TOO_SMALLを返し、見つかったミニフィルター ドライバーの数を指すように NumberFiltersReturned 設定します。 このパラメーターは必須であり、NULL することはできません。

戻り値

FltEnumerateFilters 、STATUS_SUCCESSまたは次のような適切な NTSTATUS 値を返します。

リターン コード 形容
STATUS_BUFFER_TOO_SMALL
FilterList パラメーターが指すバッファーは、要求された情報を格納するのに十分な大きさではありません。 これはエラー コードです。

備考

フィルターはいつでも登録できるため、FltEnumerateFilters する 2 回の呼び出しで同じ結果が返される保証はありません。

FltEnumerateFilters FilterList パラメーターが指す配列で返される不透明なフィルター ポインターのそれぞれにランダウン参照を追加します。 これらのポインターが不要になったら、呼び出し元は、それぞれで fltObjectDereference 呼び出して、ポインターを解放する必要があります。 したがって、FltEnumerateFilters 正常に呼び出されるたびに、返された各フィルター ポインターに対する FltObjectDereference する後続の呼び出しによって一致する必要があります。

登録されているすべてのミニフィルター ドライバーのフィルター情報を一覧表示するには、FltEnumerateFilterInformation を呼び出します。

すべてのボリューム上のすべてのミニフィルター ドライバーのインスタンスを列挙するには、FltEnumerateInstances 呼び出します。

フィルター マネージャーで認識されているすべてのボリュームを列挙するには、FltEnumerateVolumes 呼び出します。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
IRQL <= APC_LEVEL

関連項目

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference