FilterAttachAtAltitude 関数 (fltuser.h)
FilterAttachAtAltitude 関数は、指定した高度のボリュームに新しいミニフィルター インスタンスをアタッチし、ミニフィルターのセットアップ情報 (INF) ファイル内の設定をオーバーライドするデバッグ サポート関数です。
構文
HRESULT FilterAttachAtAltitude(
[in] LPCWSTR lpFilterName,
[in] LPCWSTR lpVolumeName,
[in] LPCWSTR lpAltitude,
[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] lpAltitude
ミニフィルター インスタンスがボリュームのスタック内で占有する必要があるターゲット位置を指定する数値を含む、null で終わるワイド文字列へのポインター。 数値が大きいほど、スタック内の相対的な位置が大きくなります。 高度文字列は、0 から 9 までの範囲の 1 つ以上の数字で構成され、1 つの小数点を含めることができます。 小数点は省略可能です。 たとえば、"100.123456" は有効な高度文字列です。 このパラメーターは必須であり、 NULL にすることはできません。
[in, optional] lpInstanceName
新しいインスタンスのインスタンス名を含む null で終わるワイド文字列へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 このパラメーターが NULL の場合、 FltAttachVolume の「解説」セクションで説明されているように、新しいインスタンスはミニフィルターの既定のインスタンス名を受け取ります。
[in, optional] dwCreatedInstanceNameLength
lpCreatedInstanceName が指すバッファーの長さ (バイト単位)。 このパラメーターは省略可能であり、0 にすることができます。
[out, optional] lpCreatedInstanceName
インスタンスがボリュームに正常にアタッチされた場合に、新しいインスタンスのインスタンス名を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 NULL でない場合、バッファーは、INSTANCE_NAME_MAX_CHARS文字と NULL 終端記号を保持するのに十分な大きさにする必要があります。
戻り値
FilterAttachAtAltitude は、成功した場合S_OKを返します。 それ以外の場合は、次のいずれかのエラー値を返します。
リターン コード | 説明 |
---|---|
|
インスタンスは、指定されたボリューム上のこの高度に既に存在します。 |
|
指定されたボリュームに、この名前のインスタンスが既に存在します。 |
解説
アプリケーションでは、デバッグに FilterAttachAtAltitude のみを使用する必要があります。 アプリケーションの製品版では、この関数を呼び出さないでください。
FilterAttachAtAltitude は 、FltAttachVolumeAtAltitude に相当する Win32 です。
"高度" という用語は、インスタンスがボリュームのミニフィルター インスタンス スタック内で占有する (または占有する必要がある) 位置を指します。 高度が高いほど、インスタンスはスタック内の基本ファイル システムから遠くなります。 特定のボリュームの特定の高度にアタッチできるインスタンスは 1 つだけです。
高度は 高度文字列で指定されます。これは、0 から 9 までの範囲の 1 つ以上の 10 進数字を含むワイド文字配列であり、1 つの小数点を含めることができます。 小数点は省略可能です。 たとえば、"100.123456" と "03333" は有効な高度文字列です。
文字列 "03333" は、"100.123456" より高い高度を表します。 (先頭と末尾のゼロは無視されます)。つまり、高度が "03333" のインスタンスは、高度が "100.123456" のインスタンスよりもベース ファイル システムから遠くなります。 ただし、この比較は、両方のインスタンスが同じボリュームにアタッチされている場合にのみ意味があります。
lpCreatedInstanceName で返されるインスタンス名は、システム全体で一意です。
ミニフィルター インスタンスをボリュームからデタッチするには、 FilterDetach を呼び出します。
要件
対象プラットフォーム | ユニバーサル |
Header | fltuser.h (Fltuser.h を含む) |
Library | FltLib.lib |
[DLL] | FltLib.dll |