次の方法で共有


FltGetVolumeFromDeviceObject 関数 (fltkernel.h)

FltGetVolumeFromDeviceObject ルーチンは、ボリューム デバイス オブジェクト (VDO) によって表されるボリュームの不透明なポインターを返します。

構文

NTSTATUS FLTAPI FltGetVolumeFromDeviceObject(
  [in]  PFLT_FILTER    Filter,
  [in]  PDEVICE_OBJECT DeviceObject,
  [out] PFLT_VOLUME    *RetVolume
);

パラメーター

[in] Filter

呼び出し元の不透明なフィルター ポインター。 このパラメーターは必須であり、 NULL にすることはできません。

[in] DeviceObject

ボリューム デバイス オブジェクトへのポインター。

[out] RetVolume

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

戻り値

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

リターン コード 説明
STATUS_FLT_DELETING_OBJECT ボリュームが破棄されています。 これはエラー コードです。
STATUS_INVALID_PARAMETER DeviceObject パラメーターで指定されたボリューム デバイス オブジェクトが有効なボリューム デバイス オブジェクト ポインターでなかったか、一致するボリュームが見つかりませんでした。 これはエラー コードです。

注釈

DeviceObject パラメーターには、フィルターまたはファイル システム ボリューム デバイス オブジェクト (VDO) へのポインターを指定できます。 ストレージ デバイス オブジェクトを指している場合、 FltGetVolumeFromDeviceObject は STATUS_INVALID_PARAMETERを返します。

ボリューム デバイス オブジェクトの詳細については、「 ファイル システム スタック」を参照してください。

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

特定のボリュームのデバイス オブジェクトへのポインターを取得するには、 FltGetDeviceObject を呼び出します。

要件

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

こちらもご覧ください

FltGetDeviceObject

FltGetDiskDeviceObject

FltObjectDereference