FltAttachVolumeAtAltitude 関数 (fltkernel.h)
fltAttachVolumeAtAltitude は、ミニフィルター ドライバー インスタンスを指定した高度のボリュームにアタッチし、ミニフィルター ドライバーの INF ファイル内の設定をオーバーライドするデバッグ サポート ルーチンです。
構文
NTSTATUS FLTAPI FltAttachVolumeAtAltitude(
[in, out] PFLT_FILTER Filter,
[in, out] PFLT_VOLUME Volume,
[in] PCUNICODE_STRING Altitude,
[in, optional] PCUNICODE_STRING InstanceName,
[out, optional] PFLT_INSTANCE *RetInstance
);
パラメーター
[in, out] Filter
呼び出し元の不透明なフィルター ポインター。 このパラメーターは必須であり、NULL することはできません。
[in, out] Volume
ミニフィルター ドライバー インスタンスがアタッチされるボリュームの不透明なボリューム ポインター。 このパラメーターは必須であり、NULL することはできません。
[in] Altitude
インスタンスの高度文字列を含む UNICODE_STRING 構造体へのポインター。 このパラメーターは必須であり、NULL することはできません。 (このパラメーターの詳細については、次の「解説」セクションを参照してください。
[in, optional] InstanceName
新しいインスタンスのインスタンス名を含む UNICODE_STRING 構造体へのポインター。 このパラメーターは省略可能であり、NULL できます。 NULL 場合、FltAttachVolumeAtAltitude 、ミニフィルター ドライバー名と高度 が指す高度文字列からインスタンス名 生成されます。 生成された名前は、必要に応じて文字をINSTANCE_NAME_MAX_CHARSするために切り捨てられます。
[out, optional] RetInstance
新しく作成されたインスタンスの不透明なインスタンス ポインターを受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、NULL できます。
戻り値
FltAttachVolumeAtAltitude は、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
備考
ミニフィルター ドライバーでは、デバッグ FltAttachVolumeAtAltitude のみを使用する必要があります。 ミニフィルター ドライバーの製品版では、このルーチンを呼び出さないでください。
FltAttachVolumeAtAltitude は、Win32 FilterAttachAtAltitude 関数と同等のカーネルです。
"高度" という用語は、ボリュームのミニフィルター ドライバー インスタンス スタック内でインスタンスが占有する (または占有する必要がある) 位置を指します。 高度が高いほど、インスタンスはスタック内の基本ファイル システムから遠くなります。 特定のボリューム上の特定の高度にアタッチできるインスタンスは 1 つだけです。
高度は、高度文字列によって指定されます。これは、0 から 9 までの 1 つ以上の 10 進数を含むワイド文字配列です。配列には 1 つの小数点を含めることができます。 たとえば、"100.123456" と "03333" は有効な高度文字列です。
文字列 "03333" は、"100.123456" より高い高度を表します (先頭と末尾のゼロは無視されます)。つまり、高度が "03333" のインスタンスは、高度が "100.123456" のインスタンスよりもベース ファイル システムから離れています。 ただし、この比較は、両方のインスタンスが同じボリュームにアタッチされている場合にのみ意味があります。
InstanceName パラメーターで指定されたインスタンス名は、システム全体で一意である必要があります。
FltAttachVolumeAtAltitude は、*RetInstance内の新しいインスタンスの不透明なインスタンス ポインターを返します。 このポインター値は、ミニフィルター ドライバー インスタンスを一意に識別し、インスタンスがボリュームにアタッチされている限り一定のままになります。
FltAttachVolumeAtAltitude 、*RetInstanceで返される不透明なインスタンス ポインターにランダウン参照を追加します。 このポインターが不要になったら、呼び出し元は FltObjectDereference 呼び出してポインターを解放する必要があります。 したがって、FltAttachVolumeAtAltitude 正常に呼び出されるたびに、FltObjectDereference への後続の呼び出し照合する必要があります。
同じボリュームに接続されている 2 つのミニフィルター ドライバー インスタンスの高度を比較するには、FltCompareInstanceAltitudes 呼び出。
ミニフィルター ドライバー インスタンスをボリュームからデタッチするには、FltDetachVolume 呼び出します。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | fltkernel.h (Fltkernel.h を含む) |
ライブラリ | FltMgr.lib |
IRQL | PASSIVE_LEVEL |
関連項目
FltAttachVolume を する
FltCompareInstanceAltitudes の
FltDetachVolume の
FltGetVolumeInstanceFromName の
FltStartFiltering の