FilterVolumeInstanceFindFirst 関数 (fltuser.h)
FilterVolumeInstanceFindFirst 関数は、ミニフィルター ドライバー インスタンスまたはレガシ フィルター ドライバーに関する情報を返し、ボリュームに接続されているフィルター ドライバーのスキャンを開始するために使用されます。
構文
HRESULT FilterVolumeInstanceFindFirst(
[in] LPCWSTR lpVolumeName,
[in] INSTANCE_INFORMATION_CLASS dwInformationClass,
[out] LPVOID lpBuffer,
[in] DWORD dwBufferSize,
[out] LPDWORD lpBytesReturned,
[out] LPHANDLE lpVolumeInstanceFind
);
パラメーター
[in] lpVolumeName
ミニフィルター インスタンスまたはレガシ フィルターがアタッチされているボリュームの名前を含む、null で終わるワイド文字列へのポインター。
lpVolumeName 入力文字列には、次のいずれかを指定できます。 末尾の円記号 (\) は省略可能です。
- ドライブ文字 (D:\ など)
- ボリューム マウント ポイントへのパス (c:\mnt\edrive\ など)
- 一意のボリューム識別子 ( ボリューム GUID 名とも呼ばれます) (\?など)\Volume{7603f260-142a-11d4-ac67-806d6172696f}\
- \Device\HarddiskVolume1\ などの非永続デバイス 名 (ターゲット名 または NT デバイス名とも呼ばれます)
[in] dwInformationClass
返されるフィルター ドライバー情報構造体の種類。 このパラメーターには、次のいずれかの値が含まれている必要があります。
値 | 意味 |
---|---|
InstanceBasicInformation | ミニフィルター インスタンスの INSTANCE_BASIC_INFORMATION 構造体を返します。 レガシ フィルター ドライバーは無視されます。 |
InstanceFullInformation | ミニフィルター インスタンスの INSTANCE_FULL_INFORMATION 構造体を返します。 レガシ フィルター ドライバーは無視されます。 |
InstancePartialInformation | ミニフィルター インスタンス のINSTANCE_PARTIAL_INFORMATION 構造体を返します。 レガシ フィルター ドライバーは無視されます。 |
InstanceAggregateStandardInformation |
インスタンスの INSTANCE_AGGREGATE_STANDARD_INFORMATION 構造体を返します。 構造体の LegacyFilter メンバーは使用されません。
この構造は、Windows Vista 以降で使用できます。 |
[out] lpBuffer
要求された情報を受信する呼び出し元によって割り当てられたバッファーへのポインター。 バッファーで返される情報の型は、 dwInformationClass パラメーターによって定義されます。
[in] dwBufferSize
lpBuffer パラメーターが指すバッファーのサイズ (バイト単位)。 呼び出し元は、指定された dwInformationClass に従ってこのパラメーターを設定する必要があります。
[out] lpBytesReturned
FilterVolumeInstanceFindFirst の呼び出しが成功した場合に lpBuffer が指すバッファーで返されるバイト数を受け取る呼び出し元割り当て変数へのポインター。 このパラメーターは必須であり、 NULL にすることはできません。
[out] lpVolumeInstanceFind
FilterVolumeInstanceFindFirst の呼び出しが成功した場合に、ミニフィルター インスタンスまたはレガシ フィルターの検索ハンドルを受け取る呼び出し元割り当て変数へのポインター (InstanceAggregateStandardInformation が指定されている場合のみ)。 それ以外の場合、 lpVolumeInstanceFind は INVALID_HANDLE_VALUEを受け取ります。 この検索ハンドルは、 FilterVolumeInstanceFindNext および FilterVolumeInstanceFindClose の後続の呼び出しで使用できます。
戻り値
FilterVolumeInstanceFindFirst は、成功した場合S_OKを返します。 それ以外の場合は、次のいずれかの HRESULT エラー値を返します。
リターン コード | 説明 |
---|---|
|
lpBuffer が指すバッファーは、要求された情報を格納するのに十分な大きさではありません。 この値が返されると、 lpBytesReturned には、指定された dwInformationClass 構造体に必要なバッファーのサイズ (バイト単位) が含まれます。 |
|
dwInformationClass パラメーターに無効な値が指定されました。 たとえば、Windows Vista より前のオペレーティング システムに InstanceAggregateStandardInformation が指定されている場合、 FilterVolumeInstanceFindFirst はこの HRESULT 値を返します。 |
|
特定のボリュームでフィルター ドライバーが見つかりませんでした。 |
解説
FilterVolumeInstanceFindFirst 関数は、検索ハンドルを開き、lpVolumeName という名前のボリュームにアタッチされている最初のフィルター ドライバーに関する情報を返します。 検索ハンドルが確立されたら、 FilterVolumeInstanceFindNext を呼び出して、同じボリュームに接続されている他のフィルター ドライバーを検索します。 検索ハンドルが不要になったら、 FilterVolumeInstanceFindClose を呼び出して閉じます。
Windows Vista 以降、 FilterVolumeInstanceFindFirst は、 dwInformationClass パラメーターの値が InstanceAggregateStandardInformation の場合に、レガシ フィルター ドライバー情報とミニフィルター ドライバー インスタンス情報の両方を返すことができます。 以前のオペレーティング システムでは、INSTANCE_AGGREGATE_STANDARD_INFORMATION構造を使用できないため、この関数はレガシ フィルター情報を返すことができません。
要件
対象プラットフォーム | ユニバーサル |
Header | fltuser.h (FltUser.h を含む) |
Library | FltLib.lib |
[DLL] | FltLib.dll |