FltEnumerateVolumeInformation 関数 (fltkernel.h)
FltEnumerateVolumeInformation ルーチンは、フィルター マネージャーに認識されているボリュームに関する情報を提供します。
構文
NTSTATUS FLTAPI FltEnumerateVolumeInformation(
[in] PFLT_FILTER Filter,
[in] ULONG Index,
[in] FILTER_VOLUME_INFORMATION_CLASS InformationClass,
[out] PVOID Buffer,
[in] ULONG BufferSize,
[out] PULONG BytesReturned
);
パラメーター
[in] Filter
ミニフィルター ドライバーの不透明なフィルター ポインター。 このポインターは、ミニフィルター ドライバーを一意に識別し、ミニフィルター ドライバーが読み込まれている限り一定のままになります。
[in] Index
情報が要求されるボリュームの 0 から始まるインデックス。
[in] InformationClass
要求された情報の種類。 このパラメーターには、次のいずれかの値を指定できます。
値 | 意味 |
---|---|
FilterVolumeBasicInformation | Buffer パラメーターは、ボリュームのFILTER_VOLUME_BASIC_INFORMATION構造体を受け取ります。 |
FilterVolumeStandardInformation | Buffer パラメーターは、ボリュームのFILTER_VOLUME_STANDARD_INFORMATION構造体を受け取ります。 この構造は、Windows Vista 以降で使用できます。 |
[out] Buffer
要求された情報を受信する呼び出し元によって割り当てられたバッファーへのポインター。 バッファーで返される情報の型は、 InformationClass パラメーターによって定義されます。
[in] BufferSize
Buffer パラメーターが指すバッファーのサイズ (バイト単位)。 呼び出し元は、指定された InformationClass 値に従ってこのパラメーターを設定する必要があります。
[out] BytesReturned
Buffer が指すバッファーで返されるバイト数を受け取る呼び出し元割り当て変数へのポインター。 BufferSize の入力値が小さすぎる場合、FltEnumerateVolumeInformation はSTATUS_BUFFER_TOO_SMALLを返し、この変数に要求された情報を格納するために必要なバイト数を設定します。 このパラメーターは必須であり、 NULL にすることはできません。
戻り値
FltEnumerateVolumeInformation は、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
Buffer パラメーターが指す バッファー は、要求された情報を格納するのに十分な大きさではありません。 これはエラー コードです。 |
|
一致するボリュームが見つかりましたが、取り壊されています。 これはエラー コードです。 |
|
InformationClass パラメーターに無効な値が指定されました。 たとえば、Windows Vista より前のオペレーティング システムで FilterVolumeStandardInformation が指定されている場合、ルーチンはSTATUS_INVALID_PARAMETERを返します。 これはエラー コードです。 |
|
ボリュームのグローバル 一覧には、それ以上のエントリはありません。 これは警告コードです。 |
注釈
Index パラメーターの使用は、FltEnumerateVolumeInformation ルーチンがフィルター マネージャーのボリュームのグローバル リスト内のボリュームの中から選択する方法です。 Index パラメーターの値が同じ FltEnumerateVolumeInformation に対する 2 回の呼び出しでは、ボリュームをいつでもマウントまたはマウント解除できるため、必ずしも同じ結果が返されるとは限りません。
FltEnumerateVolumeInformation を使用してボリューム情報構造体のリストを作成する場合、これらの構造体の 2 つ以上が同じボリューム名を含む可能性があります。 詳細については、「 重複するボリューム名を持つボリューム列挙について」を参照してください。
登録されているすべてのミニフィルター ドライバーを列挙するには、 FltEnumerateFilters を呼び出します。
フィルター マネージャーに認識されているすべてのボリュームを列挙するには、 FltEnumerateVolumes を呼び出します。
登録されているすべてのミニフィルター ドライバーのフィルター情報を一覧表示するには、 FltEnumerateFilterInformation を呼び出します。
特定のミニフィルター ドライバーのフィルター情報を取得するには、 FltGetFilterInformation を呼び出します。
特定のミニフィルター ドライバーのすべてのインスタンスを列挙するには、 FltEnumerateInstanceInformationByFilter を呼び出します。
特定のボリューム上のすべてのミニフィルター ドライバー インスタンスを列挙するには、 FltEnumerateInstanceInformationByVolume を呼び出します。
すべてのボリューム上のすべてのミニフィルター ドライバーのインスタンスを列挙するには、 FltEnumerateInstances を呼び出します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (FltKernel.h を含む) |
Library | FltMgr.lib |
IRQL | <= APC_LEVEL |
こちらもご覧ください
FILTER_VOLUME_BASIC_INFORMATION
FILTER_VOLUME_STANDARD_INFORMATION
FltEnumerateInstanceInformationByFilter