FltEnumerateFilterInformation 関数 (fltkernel.h)
FltEnumerateFilterInformation ルーチンは、システムに登録されているすべてのフィルター ドライバー (ミニフィルターとレガシ フィルター ドライバーを含む) に関する情報を提供します。
構文
NTSTATUS FLTAPI FltEnumerateFilterInformation(
[in] ULONG Index,
[in] FILTER_INFORMATION_CLASS InformationClass,
[out] PVOID Buffer,
[in] ULONG BufferSize,
[out] PULONG BytesReturned
);
パラメーター
[in] Index
情報が要求されるフィルター ドライバーの 0 から始まるインデックス。 このパラメーターは、登録済みのフィルター ドライバーのグローバル 一覧でフィルターを識別します。 リストに n フィルター ドライバー 含まれている場合、有効な Index 値の範囲は 0 から n-1 です。 Index 値がこの範囲を超えた場合、FltEnumerateFilterInformation はSTATUS_NO_MORE_ENTRIESを返します。
[in] InformationClass
要求された情報の種類。 このパラメーターには、次のいずれかの値を指定できます。
価値 | 意味 |
---|---|
FilterFullInformation | Buffer パラメーターが指すバッファーは、ミニフィルター ドライバーの FILTER_FULL_INFORMATION 構造体を受け取ります (レガシ フィルター ドライバーは無視されます)。 |
FilterAggregateBasicInformation | Buffer パラメーターが指すバッファーは、ミニフィルターまたはレガシ フィルター ドライバーの FILTER_AGGREGATE_BASIC_INFORMATION 構造体を受け取ります。 この InformationClass の値は、Microsoft Windows Server 2003 SP1 および Windows XP SP2 とフィルター マネージャーロールアップ以降で使用できます。 Windows XP SP2 のフィルター マネージャー ロールアップ パッケージの詳細については、Microsoft サポート技術情報の記事「914882Windows XP SP2のフィルター マネージャー ロールアップ パッケージ」を参照してください。 |
FilterAggregateStandardInformation | Buffer パラメーターが指すバッファーは、ミニフィルターまたはレガシ フィルター ドライバーの FILTER_AGGREGATE_STANDARD_INFORMATION 構造体を受け取ります。 この InformationClass 値は、Windows Vista 以降で使用できます。 |
[out] Buffer
要求された情報を受信する呼び出し元によって割り当てられたバッファーへのポインター。 バッファーで返される情報の型は、InformationClass パラメーターによって定義されます。
[in] BufferSize
Buffer パラメーターが指すバッファーのサイズ (バイト単位)。 呼び出し元は、指定された InformationClass 値に従って、このパラメーターを設定する必要があります。
[out] BytesReturned
buffer が指す バッファーで返されるバイト数を受け取る呼び出し元によって割り当てられた変数へのポインター。 BufferSize の入力値が小さすぎる場合、FltEnumerateFilterInformation はSTATUS_BUFFER_TOO_SMALLを返し、要求された情報を格納するために必要なバイト数にこの変数を設定します。 このパラメーターは必須であり、NULL することはできません。
戻り値
FltEnumerateFilterInformation は、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 形容 |
---|---|
|
Buffer パラメーターが指すバッファーは、要求された情報を格納するのに十分な大きさではありません。 これはエラー コードです。 |
|
一致するミニフィルター ドライバーが見つかりましたが、取り壊されています。 これはエラー コードです。 |
|
InformationClass パラメーターに無効な値が指定されました。 たとえば、Windows Vista より前 オペレーティング システムで FilterAggregateStandardInformation が指定されている場合、ルーチンはSTATUS_INVALID_PARAMETERを返します。 これはエラー コードです。 |
|
登録されているフィルター ドライバーのグローバル 一覧には、これ以上のエントリはありません。 (Index パラメーターの値は、フィルター ドライバーの数以上です)。これは警告コードです。 |
備考
フィルター マネージャー ロールアップが適用された Microsoft Windows Server 2003 SP1 および Windows XP SP2 以降、FltEnumerateFilterInformation は、ファイル システム フィルター ドライバー ("レガシ フィルター" とも呼ばれます) とミニフィルター ドライバーに関する情報を提供します。 以前のバージョンの Windows では、FltEnumerateFilterInformation はミニフィルター ドライバーに関する情報のみを提供します。
次の擬似コードは、登録されているすべてのフィルター ドライバーのフィルター情報を列挙します。
#define InfoClass FilterAggregateStandardInformation // Assumes Windows Vista or later operating system.
int i = 0;
while ( FltEnumerateFilterInformation(i, InfoClass, ...) != STATUS_NO_MORE_ENTRIES )
{
Process acquired filter driver information returned by the Buffer parameter of FltEnumerateFilterInformation, if applicable.
i++;
}
FltEnumerateFilterInformation は、基になるファイル システムからの距離を減らす順序で、Buffer パラメーターを使用して、登録済みのフィルター ドライバーに関する情報を返します。 たとえば、基になるファイル システムの上 n フィルター ドライバーがアタッチされているとします。 ファイル システムから最も遠く離れたフィルター ドライバーに関する情報が最初に返されます (Index パラメーター値は 0)。 次に最も遠いフィルター ドライバーに関する情報は、2 番目に返されます (Index パラメーター値は 1)。 最後に、ファイル システムに最も近いフィルター ドライバーに関する情報が最後に返されます (Index パラメーター値は n-1)。
登録されているすべてのレガシ フィルター ドライバーを列挙するには、IoEnumerateRegisteredFiltersListを呼び出します。
特定のミニフィルター ドライバーのすべてのインスタンスを列挙するには、FltEnumerateInstanceInformationByFilter を呼び出します。
特定のボリューム上のすべてのミニフィルター ドライバー インスタンスを列挙するには、FltEnumerateInstanceInformationByVolume 呼び出します。
フィルター マネージャーで認識されているすべてのボリュームのボリューム情報を一覧表示するには、FltEnumerateVolumeInformation 呼び出します。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | fltkernel.h (FltKernel.h を含む) |
ライブラリ | FltMgr.lib |
IRQL | <= APC_LEVEL |
関連項目
FILTER_AGGREGATE_BASIC_INFORMATION
FILTER_AGGREGATE_STANDARD_INFORMATION
FltEnumerateFilters を する
FltEnumerateInstanceInformationByFilter の
FltEnumerateInstanceInformationByVolume の
FltEnumerateVolumeInformation の
FltGetFilterInformation の