FltGetLowerInstance 関数 (fltkernel.h)
FltGetLowerInstance ルーチンは、同じボリューム上の特定のミニフィルター ドライバー インスタンスの下にアタッチされている次の下位ミニフィルター ドライバー インスタンス (存在する場合) の不透明なインスタンス ポインターを返します。
構文
NTSTATUS FLTAPI FltGetLowerInstance(
[in] PFLT_INSTANCE CurrentInstance,
[out] PFLT_INSTANCE *LowerInstance
);
パラメーター
[in] CurrentInstance
下位のミニフィルター ドライバー インスタンスが要求されるミニフィルター ドライバー インスタンスの不透明なインスタンス ポインター。
[out] LowerInstance
次の下位ミニフィルター ドライバー インスタンスの不透明なミニフィルター ドライバー インスタンス ポインターを受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは必須であり、 NULL にすることはできません。
戻り値
FltGetLowerInstance は、次のようなSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
下位のミニフィルター ドライバー インスタンスが見つかりませんでした。 これは警告コードです。 |
注釈
1 つのインスタンスは、同じボリューム上のより低い高度でアタッチされている場合、別のインスタンスの 下 にあると言われます。 "高度" という用語は、ボリュームのミニフィルター ドライバー インスタンス スタック内でインスタンスが占有する (または占有する必要がある) 位置を指します。 高度が高いほど、インスタンスはスタック内の基本ファイル システムから遠くなります。 特定のボリュームの特定の高度にアタッチできるインスタンスは 1 つだけです。
高度は 高度文字列で指定されます。これは、0 から 9 までの 1 つ以上の 10 進数字で構成されるカウントされた Unicode 文字列であり、1 つの小数点を含めることができます。 たとえば、"100.123456" と "03333" は有効な高度文字列です。
文字列 "03333" は、"100.123456" より高い高度を表します。 (先頭と末尾のゼロは無視されます)。つまり、高度が "03333" のインスタンスは、高度が "100.123456" のインスタンスよりもベース ファイル システムから遠くなります。 ただし、この比較は、両方のインスタンスが同じボリュームにアタッチされている場合にのみ意味があります。
FltGetLowerInstance は 、LowerInstance パラメーターで返される不透明なインスタンス ポインターにランダウン参照を追加します。 このポインターが不要になった場合、呼び出し元は FltObjectDereference を呼び出してポインターを解放する必要があります。 したがって、 FltGetLowerInstance への呼び出しが成功するたびに、 後続の FltObjectDereference の呼び出しと一致する必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | FltMgr.lib |
[DLL] | Fltmgr.sys |
IRQL | <= APC_LEVEL |