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 の場合、すべてのボリュームのインスタンスが列挙されます。 Filter が NULL の場合は NULL 以外にする必要があります。
[in, optional] Filter
インスタンスを列挙するミニフィルター ドライバーの不透明なフィルター ポインター。 NULL の場合、すべてのミニフィルター ドライバーのインスタンスが列挙されます。 Volume が NULL の場合は NULL 以外にする必要があります。
[out] InstanceList
不透明なインスタンス ポインターの配列を受け取る呼び出し元によって割り当てられたバッファーへのポインター。
[in] InstanceListSize
InstanceList が指すバッファーが保持できる不透明なインスタンス ポインターの数。
[out] NumberInstancesReturned
InstanceList が指す配列で返される不透明なインスタンス ポインターの数を受け取る呼び出し元によって割り当てられた変数へのポインター。 InstanceListSize が小さすぎる場合、FltEnumerateInstances はSTATUS_BUFFER_TOO_SMALLを返し、NumberInstancesReturned に一致するインスタンスの数を指すように設定します。
戻り値
FltEnumerateInstances は 、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
InstanceList パラメーターが指すバッファーは、要求された情報を格納するのに十分な大きさではありません。 これはエラー コードです。 |
|
ボリューム と フィルター の両方を 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 |
こちらもご覧ください
FltEnumerateInstanceInformationByFilter