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 値を返します。

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

注釈

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

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation