次の方法で共有


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

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

戻り値

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

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

備考

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

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

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

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

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

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

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

必要条件

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

関連項目

FltEnumerateFilterInformation

FltEnumerateInstanceInformationByFilter

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION