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 |