FilterAttach 関数 (fltuser.h)
FilterAttach 関数は、指定されたボリュームに新しいミニフィルター インスタンスをアタッチします。
構文
HRESULT FilterAttach(
[in] LPCWSTR lpFilterName,
[in] LPCWSTR lpVolumeName,
[in, optional] LPCWSTR lpInstanceName,
[in, optional] DWORD dwCreatedInstanceNameLength,
[out, optional] LPWSTR lpCreatedInstanceName
);
パラメーター
[in] lpFilterName
インスタンスを作成するミニフィルターの名前を含む null で終わるワイド文字列へのポインター。 このパラメーターは必須であり、 NULL にすることはできません。
[in] lpVolumeName
新しく作成されたインスタンスがアタッチされるボリュームの名前を含む、null で終わるワイド文字列へのポインター。
lpVolumeName 入力文字列には、次のいずれかを指定できます。 末尾の円記号 (\) は省略可能です。
- ドライブ文字 ("D:\" など)
- "c:\mnt\edrive\" などのボリューム マウント ポイントへのパス
- "\?" などの一意 のボリューム識別子 (ボリューム GUID 名とも呼ばれます)。\Volume{7603f260-142a-11d4-ac67-806d6172696f}\"
- "\Device\HarddiskVolume1\" などの非永続デバイス 名 (ターゲット名 または NT デバイス名とも呼ばれます)
[in, optional] lpInstanceName
新しいインスタンスのインスタンス名を含む null で終わるワイド文字列へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 このパラメーターが NULL の場合、 FltAttachVolume の「解説」セクションで説明されているように、新しいインスタンスはミニフィルターの既定のインスタンス名を受け取ります。
[in, optional] dwCreatedInstanceNameLength
lpCreatedInstanceName が指すバッファーの長さ (バイト単位)。 このパラメーターは省略可能であり、0 にすることができます。
[out, optional] lpCreatedInstanceName
インスタンスがボリュームに正常にアタッチされた場合に、新しいインスタンスのインスタンス名を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 NULL でない場合、バッファーは、INSTANCE_NAME_MAX_CHARS文字と NULL ターミネータを保持するのに十分な大きさにする必要があります。
戻り値
成功した場合、FilterAttach はS_OKを返します。 それ以外の場合は、次のいずれかのエラー値を返します。
リターン コード | 説明 |
---|---|
|
インスタンスは、指定されたボリューム上のこの高度に既に存在します。 |
|
指定されたボリュームに、この名前のインスタンスが既に存在します。 |
|
lpInstanceName が NULL 以外の場合、lpInstanceName はレジストリに登録されているフィルター インスタンス名と一致しません。 |
注釈
FilterAttach は、 FltAttachVolume に相当する Win32 です。
lpInstanceName で指定されたインスタンス名は、システム全体で一意である必要があります。
特定の高度のボリュームにミニフィルター インスタンスをアタッチするには、 FilterAttachAtAltitude を呼び出します。
ミニフィルター インスタンスをボリュームからデタッチするには、 FilterDetach を呼び出します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | fltuser.h (Fltuser.h を含む) |
Library | FltLib.lib |
[DLL] | FltLib.dll |