次の方法で共有


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 への後続の呼び出し照合する必要があります。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

関連項目

FltAttachVolume する

FltAttachVolumeAtAltitude する

FltObjectDereference

UNICODE_STRING