次の方法で共有


FltEnumerateFilters 関数 (fltkernel.h)

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

構文

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

パラメーター

[out] FilterList

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

[in] FilterListSize

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

[out] NumberFiltersReturned

FilterList パラメーターが指す配列で返される不透明なフィルター ポインターの数を受け取る呼び出し元によって割り当てられた変数へのポインター。 FilterListSize パラメーター値が小さすぎて、入力時に FilterListNULL 以外の場合、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 を呼び出します。

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
IRQL <= APC_LEVEL

こちらもご覧ください

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference