次の方法で共有


FltGetVolumeFromName 関数 (fltkernel.h)

FltGetVolumeFromName ルーチンは、名前が VolumeName パラメーターの値と一致するボリュームの不透明なポインターを返します。

構文

NTSTATUS FLTAPI FltGetVolumeFromName(
  [in]  PFLT_FILTER      Filter,
  [in]  PCUNICODE_STRING VolumeName,
  [out] PFLT_VOLUME      *RetVolume
);

パラメーター

[in] Filter

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

[in] VolumeName

ボリューム名を含む UNICODE_STRING 構造体へのポインター (たとえば、"\Device\HarddiskVolume1"、"\DosDevices\D:"、"\??\D:"、または "D:")。 このパラメーターは必須であり、 NULL にすることはできません。

[out] RetVolume

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

戻り値

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

リターン コード 説明
STATUS_ACCESS_DENIED 呼び出し元は、ボリュームへのFILE_READ_DATAアクセス権を持っていませんでした。 これはエラー コードです。
STATUS_FLT_DELETING_OBJECT ボリュームが破棄されています。 これはエラー コードです。
STATUS_INVALID_PARAMETER VolumeName パラメーターに無効な値が指定されました。 これはエラー コードです。
STATUS_FLT_VOLUME_NOT_FOUND 一致するボリュームが見つかりませんでした。 これはエラー コードです。

注釈

FltGetVolumeFromName は、名前が VolumeName と一致するボリュームについて、フィルター マネージャーのボリュームのグローバル リストを検索します。 呼び出し元は、ボリュームへのFILE_READ_DATAアクセス権を持っている必要があります。 ボリューム構造を見つけるには、 最初にボリューム を開く必要があります。

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

特定のボリュームのボリューム名を取得するには、 FltGetVolumeName を呼び出します。

特定のボリュームのボリューム GUID 名を取得するには、 FltGetVolumeGuidName を呼び出します。

要件

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

こちらもご覧ください

FltGetFilterFromName

FltGetVolumeGuidName

FltGetVolumeInstanceFromName

FltGetVolumeName

FltObjectDereference

UNICODE_STRING