fltEnumerateVolumeInformation 函数 (fltkernel.h)

FltEnumerateVolumeInformation 例程提供有关筛选器管理器已知卷的信息。

语法

NTSTATUS FLTAPI FltEnumerateVolumeInformation(
  [in]  PFLT_FILTER                     Filter,
  [in]  ULONG                           Index,
  [in]  FILTER_VOLUME_INFORMATION_CLASS InformationClass,
  [out] PVOID                           Buffer,
  [in]  ULONG                           BufferSize,
  [out] PULONG                          BytesReturned
);

参数

[in] Filter

微筛选器驱动程序的不透明筛选器指针。 此指针唯一标识微筛选器驱动程序,只要加载微筛选器驱动程序,它就保持不变。

[in] Index

请求信息的卷的从零开始的索引。

[in] InformationClass

请求的信息类型。 此参数可以具有以下值之一。

含义
FilterVolumeBasicInformation Buffer 参数接收卷的FILTER_VOLUME_BASIC_INFORMATION结构。
FilterVolumeStandardInformation Buffer 参数接收卷的FILTER_VOLUME_STANDARD_INFORMATION结构。 此结构从 Windows Vista 开始可用。

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

返回值

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

返回代码 说明
STATUS_BUFFER_TOO_SMALL
Buffer 参数指向的 缓冲区 不够大,无法存储请求的信息。 这是错误代码。
STATUS_FLT_DELETING_OBJECT
找到匹配的卷,但它正在被拆掉。 这是错误代码。
STATUS_INVALID_PARAMETER
InformationClass 参数指定了无效值。 例如,如果在 Windows Vista 之前的操作系统上指定 FilterVolumeStandardInformation ,则例程返回STATUS_INVALID_PARAMETER。 这是错误代码。
STATUS_NO_MORE_ENTRIES
卷的全局列表中没有其他条目。 这是一个警告代码。

注解

使用 Index 参数只是 FltEnumerateVolumeInformation 例程在筛选器管理器的卷全局卷列表中进行选择的一种方法。 对具有相同 Index 参数值的 FltEnumerateVolumeInformation 的两次调用不一定返回相同的结果,因为卷可以随时装载或卸载。

如果使用 FltEnumerateVolumeInformation 创建卷信息结构列表,则其中两个或更多个结构可能会包含相同的卷名称。 有关详细信息,请参阅 了解具有重复卷名称的卷枚举

若要枚举所有已注册的微筛选器驱动程序,请调用 FltEnumerateFilters

若要枚举筛选器管理器已知的所有卷,请调用 FltEnumerateVolumes

若要列出所有已注册微筛选器驱动程序的筛选器信息,请调用 FltEnumerateFilterInformation

若要获取给定微筛选器驱动程序的筛选器信息,请调用 FltGetFilterInformation

若要枚举给定微筛选器驱动程序的所有实例,请调用 FltEnumerateInstanceInformationByFilter

若要枚举给定卷上的所有微筛选器驱动程序实例,请调用 FltEnumerateInstanceInformationByVolume

若要枚举所有卷上所有微筛选器驱动程序的实例,请调用 FltEnumerateInstances

要求

要求
目标平台 通用
标头 fltkernel.h (包括 FltKernel.h)
Library FltMgr.lib
IRQL <= APC_LEVEL

另请参阅

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation