次の方法で共有


FltGetVolumeInstanceFromName 関数 (fltkernel.h)

FltGetVolumeInstanceFromName ルーチンは、指定されたボリューム上の特定のミニフィルター ドライバー インスタンスの不透明なインスタンス ポインターを返します。

構文

NTSTATUS FLTAPI FltGetVolumeInstanceFromName(
  [in, optional] PFLT_FILTER      Filter,
  [in]           PFLT_VOLUME      Volume,
  [in, optional] PCUNICODE_STRING InstanceName,
  [out]          PFLT_INSTANCE    *RetInstance
);

パラメーター

[in, optional] Filter

インスタンスを所有するミニフィルター ドライバーの不透明なフィルター ポインター。 このパラメーターは省略可能であり、 NULL にすることができます

[in] Volume

インスタンスがアタッチされているボリュームの不透明なポインター。 有効なボリューム ハンドルである必要があります。 このパラメーターは必須であり、 NULL にすることはできません。 (このパラメーターを無効な値に設定すると、システムはチェックされたビルドで ASSERT を実行します)。

[in, optional] InstanceName

ボリューム上のインスタンスのインスタンス名 含む呼び出し元によって割り当てられたUNICODE_STRING構造体へのポインター。 (これは、インスタンスの作成時に FltAttachVolume または FltAttachVolumeAtAltitude に渡された InstanceName 値です)。このパラメーターは省略可能であり、NULL にすることができますNULL の場合、FltGetVolumeInstanceFromName は、検出された一致する最も高いインスタンスを返します。

[out] RetInstance

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

戻り値

FltGetVolumeInstanceFromName は、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_FLT_DELETING_OBJECT
インスタンスが破棄されています。 これはエラー コードです。
STATUS_FLT_INSTANCE_NOT_FOUND
一致するインスタンスが見つかりませんでした。 これはエラー コードです。

注釈

FltGetVolumeInstanceFromName は、 Volume パラメーターで 指定されたボリュームにアタッチされているミニフィルター ドライバー インスタンスの一覧を、一番上のインスタンスから始まる高度の低下順に検索します。 FilterVolumeおよび InstanceName パラメーターの指定された値に複数のインスタンスが一致する場合、FltGetVolumeInstanceFromName は、検出された一致する最も高いインスタンスを返します。

"高度" という用語は、ボリュームのミニフィルター ドライバー インスタンス スタック内でインスタンスが占有する (または占有する必要がある) 位置を指します。 高度が高いほど、インスタンスはスタック内の基本ファイル システムから遠くなります。 特定のボリュームの特定の高度にアタッチできるインスタンスは 1 つだけです。

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

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

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

要件

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

こちらもご覧ください

FltAttachVolume

FltAttachVolumeAtAltitude

FltObjectDereference

UNICODE_STRING