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 必须先打开卷。

FltGetVolumeFromName 添加对 RetVolume 参数中返回的不透明卷指针的运行引用。 不再需要此指针时,调用方必须通过调用 FltObjectDereference释放它。 因此,对 FltGetVolumeFromName 的每个成功调用都必须匹配对 FltObjectDereference的后续调用。

若要获取给定卷的卷名称,请调用 FltGetVolumeName

若要获取给定卷的卷 GUID 名称,请调用 FltGetVolumeGuidName

要求

要求 价值
目标平台 普遍
标头 fltkernel.h (包括 Fltkernel.h)
FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

另请参阅

FltGetFilterFromName

FltGetVolumeGuidName

FltGetVolumeInstanceFromName

FltGetVolumeName

FltObjectDereference

UNICODE_STRING