次の方法で共有


FltGetLowerInstance 関数 (fltkernel.h)

FltGetLowerInstance ルーチンは、同じボリューム上の特定のミニフィルター ドライバー インスタンスの下にアタッチされている次の下位ミニフィルター ドライバー インスタンス (存在する場合) の不透明なインスタンス ポインターを返します。

構文

NTSTATUS FLTAPI FltGetLowerInstance(
  [in]  PFLT_INSTANCE CurrentInstance,
  [out] PFLT_INSTANCE *LowerInstance
);

パラメーター

[in] CurrentInstance

下位のミニフィルター ドライバー インスタンスが要求されるミニフィルター ドライバー インスタンスの不透明なインスタンス ポインター。

[out] LowerInstance

次の下位ミニフィルター ドライバー インスタンスの不透明なミニフィルター ドライバー インスタンス ポインターを受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは必須であり、 NULL にすることはできません。

戻り値

FltGetLowerInstance は、次のようなSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_NO_MORE_ENTRIES
下位のミニフィルター ドライバー インスタンスが見つかりませんでした。 これは警告コードです。

注釈

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

こちらもご覧ください

FltAttachVolume

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

FltGetBottomInstance

FltGetTopInstance

FltGetUpperInstance

FltObjectDereference