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 |