次の方法で共有


FltEnumerateInstanceInformationByVolume 関数 (fltkernel.h)

FltEnumerateInstanceInformationByVolume ルーチンは、特定のボリュームにアタッチされているミニフィルター ドライバー インスタンスとレガシ フィルター ドライバー (Windows Vista のみ) に関する情報を提供します。

構文

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolume(
  [in]  PFLT_VOLUME                Volume,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

パラメーター

[in] Volume

ボリュームの不透明なポインター。

[in] Index

情報が要求されるミニフィルター ドライバー インスタンスまたはレガシ フィルター ドライバーの 0 から始まるインデックス。

[in] InformationClass

ミニフィルター ドライバー インスタンスまたはレガシ フィルター ドライバーに対して返される情報の種類。 このパラメーターには、次のいずれかの値を指定できます。

意味
InstanceBasicInformation Buffer パラメーターが指す バッファー は、ミニフィルター インスタンスの INSTANCE_BASIC_INFORMATION 構造体を受け取ります。 レガシ フィルター ドライバーは無視されます。
InstanceFullInformation Buffer パラメーターが指す バッファー は、ミニフィルター インスタンスの INSTANCE_FULL_INFORMATION 構造体を受け取ります。 レガシ フィルター ドライバーは無視されます。
InstancePartialInformation Buffer パラメーターが指す バッファー は、ミニフィルター インスタンスの INSTANCE_PARTIAL_INFORMATION 構造体を受け取ります。 レガシ フィルター ドライバーは無視されます。
InstanceAggregateStandardInformation Buffer パラメーターが指す バッファー は、ミニフィルター ドライバー インスタンスまたはレガシ フィルター ドライバーの INSTANCE_AGGREGATE_STANDARD_INFORMATION 構造体を受け取ります。 この構造は、Windows Vista 以降で使用できます。

[out] Buffer

要求された情報を受信する呼び出し元によって割り当てられたバッファーへのポインター。 バッファーで返される情報の型は、 InformationClass パラメーターによって定義されます。

[in] BufferSize

Buffer パラメーターが指すバッファーのサイズ (バイト単位)。 呼び出し元は、指定された InformationClass 値に従ってこのパラメーターを設定する必要があります。

[out] BytesReturned

Buffer が指すバッファーで返されるバイト数を受け取る呼び出し元割り当て変数へのポインター。 BufferSize の入力値が小さすぎる場合、FltEnumerateInstanceInformationByVolume はSTATUS_BUFFER_TOO_SMALLを返し、この変数を要求された情報を格納するために必要なバイト数に設定します。 このパラメーターは必須であり、 NULL にすることはできません。

戻り値

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

リターン コード 説明
STATUS_BUFFER_TOO_SMALL
Buffer パラメーターが指す バッファー は、要求された情報を格納するのに十分な大きさではありません。 これはエラー コードです。
STATUS_FLT_DELETING_OBJECT
一致するミニフィルター インスタンスが見つかりましたが、取り壊されています。 これはエラー コードです。 レガシ フィルター ドライバーをアンロードできないため、この戻り値はレガシ フィルター ドライバーには適用されないことに注意してください。
STATUS_INVALID_PARAMETER
InformationClass パラメーターに無効な値が指定されました。 たとえば、Windows Vista より前のオペレーティング システムで InstanceAggregateStandardInformation が指定されている場合、ルーチンはSTATUS_INVALID_PARAMETERを返します。 これはエラー コードです。
STATUS_NO_MORE_ENTRIES
ボリュームのインスタンス/フィルターリストにエントリはこれ以上ありません。 これは警告コードです。

注釈

Index パラメーターを使用すると、単に FltEnumerateInstanceInformationByVolume が、Volume で指定されたボリュームのインスタンス/フィルター リスト内のミニフィルター ドライバー インスタンスとレガシ フィルター ドライバーの中から選択できます。 インスタンス/フィルター リスト内のミニフィルター ドライバー インスタンスはいつでも変更できるため、同じ Index 値と Volume 値を持つ FltEnumerateInstanceInformationByVolume に対する 2 回の呼び出しは、同じ結果を返す保証はありません。

Windows Vista 以降では、 InformationClass パラメーターの値が InstanceAggregateStandardInformation の場合、このルーチンはレガシ フィルター ドライバー情報とミニフィルター ドライバー インスタンス情報の両方を返すことができます。 以前のオペレーティング システムでは、INSTANCE_AGGREGATE_STANDARD_INFORMATION構造体を使用できないため、このルーチンはレガシ フィルター情報を返すことができません。

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

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

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

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

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

要件

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

こちらもご覧ください

FltEnumerateFilterInformation

FltEnumerateInstanceInformationByFilter

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION