次の方法で共有


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

リターン コード 説明
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
lpBuffer が指すバッファーは、要求された情報を格納するのに十分な大きさではありません。 この値が返されると、 lpBytesReturned には、指定された dwInformationClass 構造体に必要なバッファーのサイズ (バイト単位) が含まれます。
HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER)
dwInformationClass パラメーターに無効な値が指定されました。 たとえば、Windows Vista より前のオペレーティング システムに InstanceAggregateStandardInformation が指定されている場合、 FilterVolumeInstanceFindFirst はこの HRESULT 値を返します。
HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS)
特定のボリュームでフィルター ドライバーが見つかりませんでした。

解説

FilterVolumeInstanceFindFirst 関数は、検索ハンドルを開き、lpVolumeName という名前のボリュームにアタッチされている最初のフィルター ドライバーに関する情報を返します。 検索ハンドルが確立されたら、 FilterVolumeInstanceFindNext を呼び出して、同じボリュームに接続されている他のフィルター ドライバーを検索します。 検索ハンドルが不要になったら、 FilterVolumeInstanceFindClose を呼び出して閉じます。

Windows Vista 以降、 FilterVolumeInstanceFindFirst は、 dwInformationClass パラメーターの値が InstanceAggregateStandardInformation の場合に、レガシ フィルター ドライバー情報とミニフィルター ドライバー インスタンス情報の両方を返すことができます。 以前のオペレーティング システムでは、INSTANCE_AGGREGATE_STANDARD_INFORMATION構造を使用できないため、この関数はレガシ フィルター情報を返すことができません。

要件

   
対象プラットフォーム ユニバーサル
Header fltuser.h (FltUser.h を含む)
Library FltLib.lib
[DLL] FltLib.dll

関連項目

FilterVolumeInstanceFindClose

FilterVolumeInstanceFindNext

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION