次の方法で共有


FltEnumerateInstanceInformationByVolumeName 関数 (fltkernel.h)

FltEnumerateInstanceInformationByVolumeName ルーチンは、指定した名前でボリュームにアタッチされているミニフィルター ドライバー インスタンスとレガシ フィルター ドライバーに関する情報を提供します。

構文

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolumeName(
  [in]  PUNICODE_STRING            VolumeName,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

パラメーター

[in] VolumeName

フィルター インスタンスを列挙するボリュームの名前。

[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 構造体を受け取ります。

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

戻り値

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

リターン コード 説明
STATUS_BUFFER_TOO_SMALL
Buffer パラメーターが指す バッファー は、要求された情報を格納するのに十分な大きさではありません。
STATUS_FLT_DELETING_OBJECT
一致するミニフィルター インスタンスが見つかりましたが、取り壊されています。 レガシ フィルター ドライバーをアンロードできないため、この戻り値はレガシ フィルター ドライバーには適用されないことに注意してください。
STATUS_INVALID_PARAMETER
InformationClass パラメーターに無効な値が指定されました。

または

VolumeName に無効なボリューム名が含まれています。

STATUS_NO_MORE_ENTRIES
ボリュームのインスタンス/フィルターリストにエントリはこれ以上ありません。
STATUS_OBJECT_NAME_NOT_FOUND
VolumeName で指定されたボリュームが存在しません。
STATUS_OBJECT_PATH_NOT_FOUND
VolumeName で指定されたボリュームのパスが存在しません。
STATUS_FLT_VOLUME_NOT_FOUND
VolumeName で指定されたボリュームには、フィルター インスタンスがアタッチされていません。

または

VolumeName で指定されたボリュームがシステムから削除されています。

STATUS_FLT_INTERNAL_ERROR
VolumeName で指定されたボリュームは登録されましたが、フィルター インスタンスがアタッチされていません。

注釈

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

InformationClass パラメーターの値が InstanceAggregateStandardInformation の場合、このルーチンはレガシ フィルター ドライバー情報とミニフィルター ドライバー インスタンス情報の両方を返します。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
IRQL <= APC_LEVEL

こちらもご覧ください

FltEnumerateInstanceInformationByDeviceObject

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume