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 の入力値が小さすぎる場合、FltEnumerateInstanceInformationByVolumeName はSTATUS_BUFFER_TOO_SMALLを返し、この変数を要求された情報を格納するために必要なバイト数に設定します。 このパラメーターは必須であり、 NULL にすることはできません。
戻り値
FltEnumerateInstanceInformationByVolumeName は、 次のいずれかのSTATUS_SUCCESS または適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
Buffer パラメーターが指す バッファー は、要求された情報を格納するのに十分な大きさではありません。 |
|
一致するミニフィルター インスタンスが見つかりましたが、取り壊されています。 レガシ フィルター ドライバーをアンロードできないため、この戻り値はレガシ フィルター ドライバーには適用されないことに注意してください。 |
|
InformationClass パラメーターに無効な値が指定されました。
または VolumeName に無効なボリューム名が含まれています。 |
|
ボリュームのインスタンス/フィルターリストにエントリはこれ以上ありません。 |
|
VolumeName で指定されたボリュームが存在しません。 |
|
VolumeName で指定されたボリュームのパスが存在しません。 |
|
VolumeName で指定されたボリュームには、フィルター インスタンスがアタッチされていません。
または VolumeName で指定されたボリュームがシステムから削除されています。 |
|
VolumeName で指定されたボリュームは登録されましたが、フィルター インスタンスがアタッチされていません。 |
注釈
Index パラメーターを使用すると、単に FltEnumerateInstanceInformationByVolumeName が、VolumeName で指定されたボリュームのインスタンス/フィルター リスト内のミニフィルター ドライバー インスタンスとレガシ フィルター ドライバーの中から選択できます。 インスタンス/フィルター リスト内のミニフィルター ドライバー インスタンスはいつでも変更できるため、同じ Index 値と VolumeName 値を持つ FltEnumerateInstanceInformationByVolumeName への 2 回の呼び出しは、同じ結果を返す保証はありません。
InformationClass パラメーターの値が InstanceAggregateStandardInformation の場合、このルーチンはレガシ フィルター ドライバー情報とミニフィルター ドライバー インスタンス情報の両方を返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | FltMgr.lib |
IRQL | <= APC_LEVEL |
こちらもご覧ください
FltEnumerateInstanceInformationByDeviceObject