次の方法で共有


FltGetBottomInstance 関数 (fltkernel.h)

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

構文

NTSTATUS FLTAPI FltGetBottomInstance(
  [in]  PFLT_VOLUME   Volume,
  [out] PFLT_INSTANCE *Instance
);

パラメーター

[in] Volume

ボリュームの不透明なポインター。

[out] Instance

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

戻り値

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

リターン コード 説明
STATUS_NO_MORE_ENTRIES
一致するインスタンスが見つかりませんでした。 これは警告コードです。

注釈

インスタンスの高度が同じボリュームにアタッチされている他のすべてのインスタンスよりも低い場合、インスタンスはミニフィルター ドライバー インスタンス スタックの 下部 にあると言われます。 "高度" という用語は、インスタンスがボリュームのミニフィルター ドライバー インスタンス スタック内で占有する位置を指します。 高度が高いほど、インスタンスはスタック内の基本ファイル システムから遠くなります。 特定のボリュームの特定の高度にアタッチできるインスタンスは 1 つだけです。

高度は 高度文字列で指定されます。これは、0 から 9 までの 1 つ以上の 10 進数字で構成されるカウントされた Unicode 文字列であり、1 つの小数点を含めることができます。 たとえば、"100.123456" と "03333" は有効な高度文字列です。

文字列 "03333" は、"100.123456" より高い高度を表します。 (先頭と末尾のゼロは無視されます)。つまり、高度が "03333" のインスタンスは、高度が "100.123456" のインスタンスよりもベース ファイル システムから遠くなります。 ただし、この比較は、両方のインスタンスが同じボリュームにアタッチされている場合にのみ意味があります。

FltGetBottomInstance は、*Instance で返される不透明なインスタンス ポインターにランダウン参照を追加します。 このポインターが不要になった場合、呼び出し元は FltObjectDereference を呼び出してポインターを解放する必要があります。 したがって、 FltGetBottomInstance への正常な呼び出しはすべて、後続の FltObjectDereference の呼び出しと一致する必要があります。

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
[DLL] Fltmgr.sys
IRQL <= APC_LEVEL

こちらもご覧ください

FltAttachVolume

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

FltGetLowerInstance

FltGetTopInstance

FltGetUpperInstance

FltObjectDereference