FltEnumerateInstanceInformationByVolumeName 函数 (fltkernel.h)

FltEnumerateInstanceInformationByVolumeName 例程提供有关以指定名称附加到卷的微筛选器驱动程序实例和旧筛选器驱动程序的信息。

语法

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolumeName(
  [in]  PUNICODE_STRING            VolumeName,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

参数

[in] VolumeName

要为其枚举筛选器实例的卷的名称。

[in] Index

请求信息的微筛选器驱动程序实例或旧筛选器驱动程序的从零开始的索引。

[in] InformationClass

要为微筛选器驱动程序实例或旧筛选器驱动程序返回的信息类型。 此参数可以具有以下值之一。

含义
InstanceBasicInformation Buffer 参数指向的 缓冲区 接收微筛选器实例 的INSTANCE_BASIC_INFORMATION 结构。 忽略旧版筛选器驱动程序。
InstanceFullInformation Buffer 参数指向的 缓冲区 接收微筛选器实例 的INSTANCE_FULL_INFORMATION 结构。 忽略旧版筛选器驱动程序。
InstancePartialInformation Buffer 参数指向的 缓冲区 接收微筛选器实例 的INSTANCE_PARTIAL_INFORMATION 结构。 忽略旧版筛选器驱动程序。
InstanceAggregateStandardInformation Buffer 参数指向的 缓冲区 接收微筛选器驱动程序实例或旧筛选器驱动程序 的INSTANCE_AGGREGATE_STANDARD_INFORMATION 结构。

[out] Buffer

指向调用方分配的缓冲区的指针,该缓冲区接收请求的信息。 缓冲区中返回的信息的类型由 InformationClass 参数定义。

[in] BufferSize

Buffer 参数指向的缓冲区的大小(以字节为单位)。 调用方应根据给定 的 InformationClass 值设置此参数。

[out] BytesReturned

指向调用方分配的变量的指针,该变量接收 Buffer 指向的缓冲区中返回的字节数。 如果 BufferSize 的输入值太小, 则 FltEnumerateInstanceInformationByVolumeName 返回 STATUS_BUFFER_TOO_SMALL 并将此变量设置为存储请求的信息所需的字节数。 此参数是必需的,不能为 NULL

返回值

FltEnumerateInstanceInformationByVolumeName 返回 STATUS_SUCCESS 或相应的 NTSTATUS 值,如以下值之一:

返回代码 说明
STATUS_BUFFER_TOO_SMALL
Buffer 参数指向的 缓冲区 不够大,无法存储请求的信息。
STATUS_FLT_DELETING_OBJECT
找到匹配的微筛选器实例,但它正在被拆除。 请注意,此返回值不适用于旧筛选器驱动程序,因为无法卸载旧筛选器驱动程序。
STATUS_INVALID_PARAMETER
InformationClass 参数指定了无效值。

-或-

VolumeName 包含无效的卷名。

STATUS_NO_MORE_ENTRIES
卷的实例/筛选器列表中没有其他条目。
STATUS_OBJECT_NAME_NOT_FOUND
VolumeName 中指定的卷不存在。
STATUS_OBJECT_PATH_NOT_FOUND
VolumeName 中指定的卷的路径不存在。
STATUS_FLT_VOLUME_NOT_FOUND
由 VolumeName 指定的卷未附加任何筛选器实例。

-或-

正在从系统中删除 由 VolumeName 指定的卷。

STATUS_FLT_INTERNAL_ERROR
由 VolumeName 指定的卷已注册,但未附加任何筛选器实例。

注解

使用 Index 参数只是 FltEnumerateInstanceInformationByVolumeNameVolumeName 指定的卷的实例/筛选器列表中的微筛选器驱动程序和旧筛选器驱动程序之间进行选择的方法。 由于实例/筛选器列表中的微筛选器驱动程序实例可以随时更改,因此,对具有相同 IndexVolumeName 值的 FltEnumerateInstanceInformationByVolumeName 的两次调用不能保证返回相同的结果。

InformationClass 参数的值为 InstanceAggregateStandardInformation 时,此例程将返回旧筛选器驱动程序信息和微筛选器驱动程序实例信息。

要求

要求
最低受支持的客户端 从Windows 8开始可用。
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library FltMgr.lib
IRQL <= APC_LEVEL

另请参阅

FltEnumerateInstanceInformationByDeviceObject

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume