FltOpenVolume 関数 (fltkernel.h)

FltOpenVolume ルーチンは、特定のミニフィルター ドライバー インスタンスがアタッチされているファイル システム ボリュームのハンドルとファイル オブジェクト ポインターを返します。

構文

NTSTATUS FLTAPI FltOpenVolume(
  [in]  PFLT_INSTANCE Instance,
  [out] PHANDLE       VolumeHandle,
  [out] PFILE_OBJECT  *VolumeFileObject
);

パラメーター

[in] Instance

インスタンスの不透明なインスタンス ポインター。 このインスタンスはローカル ボリュームにアタッチする必要があります。

[out] VolumeHandle

ファイル システム ボリュームのハンドル。

[out] VolumeFileObject

ボリュームのルート ディレクトリのファイル オブジェクト ポインターを受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。

戻り値

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

リターン コード 説明
STATUS_FLT_DELETING_OBJECT
インスタンスまたはボリュームが破損しています。 これはエラー コードです。
STATUS_INVALID_PARAMETER
インスタンスはネットワーク ボリュームにアタッチされます。 これはエラー コードです。

注釈

VolumeHandle パラメーターで返されるハンドルが不要になった場合、呼び出し元は FltClose を呼び出して解放する必要があります。 したがって、 FltOpenVolume への呼び出しが成功するたびに、 FltClose の後続の呼び出しと一致する必要があります。

VolumeFileObject パラメーターでファイル オブジェクト ポインターが返された場合、呼び出し元は ObDereferenceObject を呼び出して不要になったときに解放する必要があります。

Instance パラメーターで指定された インスタンス は、ローカル ボリュームにアタッチする必要があります。 ネットワーク ボリュームに接続されている場合、 FltOpenVolume はSTATUS_INVALID_PARAMETERを返します。

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

特定のインスタンスがアタッチされているボリュームに関する詳細情報を取得するには、 FltQueryVolumeInformation を呼び出します。

要件

   
サポートされている最小のクライアント Microsoft Windows 2000 Update Rollup 1 for SP4、Windows XP SP3、Windows Server 2003 SP1、およびそれ以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
[DLL] Fltmgr.sys
IRQL PASSIVE_LEVEL

こちらもご覧ください

FltClose

FltGetDeviceObject

FltGetFilterFromInstance

FltObjectDereference

FltQueryVolumeInformation

ObDereferenceObject