次の方法で共有


FltEnumerateInstances 関数 (fltkernel.h)

FltEnumerateInstances ルーチンは、特定のミニフィルター ドライバーまたはボリュームのミニフィルター ドライバー インスタンスを列挙します。

構文

NTSTATUS FLTAPI FltEnumerateInstances(
  [in, optional] PFLT_VOLUME   Volume,
  [in, optional] PFLT_FILTER   Filter,
  [out]          PFLT_INSTANCE *InstanceList,
  [in]           ULONG         InstanceListSize,
  [out]          PULONG        NumberInstancesReturned
);

パラメーター

[in, optional] Volume

呼び出し元がミニフィルター ドライバー インスタンスを列挙するボリュームの不透明なポインター。 NULL の場合、すべてのボリュームのインスタンスが列挙されます。 FilterNULL の場合は NULL 以外にする必要があります。

[in, optional] Filter

インスタンスを列挙するミニフィルター ドライバーの不透明なフィルター ポインター。 NULL の場合、すべてのミニフィルター ドライバーのインスタンスが列挙されます。 VolumeNULL の場合は NULL 以外にする必要があります。

[out] InstanceList

不透明なインスタンス ポインターの配列を受け取る呼び出し元によって割り当てられたバッファーへのポインター。

[in] InstanceListSize

InstanceList が指すバッファーが保持できる不透明なインスタンス ポインターの数。

[out] NumberInstancesReturned

InstanceList が指す配列で返される不透明なインスタンス ポインターの数を受け取る呼び出し元によって割り当てられた変数へのポインター。 InstanceListSize が小さすぎる場合、FltEnumerateInstances はSTATUS_BUFFER_TOO_SMALLを返し、NumberInstancesReturned に一致するインスタンスの数を指すように設定します。

戻り値

FltEnumerateInstances は 、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_BUFFER_TOO_SMALL
InstanceList パラメーターが指すバッファーは、要求された情報を格納するのに十分な大きさではありません。 これはエラー コードです。
STATUS_INVALID_PARAMETER
ボリュームフィルター の両方を NULL にすることはできません。 これはエラー コードです。

注釈

インスタンス 一覧のミニフィルター ドライバー インスタンスはいつでも変更できるため、同じ Volume 値と Filter 値を使用して FltEnumerateInstances を 2 回呼び出しても、同じ結果が返される保証はありません。

FltEnumerateInstances は、 InstanceList パラメーターが指す配列で返される不透明な各インスタンス ポインターにランダウン参照を追加します。 これらのポインターが不要になった場合、呼び出し元は各ポインターに 対して FltObjectDereference を呼び出してそれらを解放する必要があります。 したがって、 FltEnumerateInstances への正常な呼び出しはすべて、返される各インスタンス ポインターに対する FltObjectDereference の後続の呼び出しと一致する必要があります。

登録されているすべてのミニフィルター ドライバーを列挙するには、 FltEnumerateFilters を呼び出します。

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

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

特定のミニフィルター ドライバーのフィルター情報を取得するには、 FltGetFilterInformation を呼び出します。

特定のミニフィルター ドライバーのすべてのインスタンスを列挙するには、 FltEnumerateInstanceInformationByFilter を呼び出します。

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

要件

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

こちらもご覧ください

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference