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 例程在筛选器管理器的全局卷列表中选择的卷的方法。 两次调用 FltEnumerateVolumeInformationIndex 参数的值不一定返回相同的结果,因为可以随时装载或卸载卷。

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

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

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

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

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

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

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

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

要求

要求 价值
目标平台 普遍
标头 fltkernel.h (包括 FltKernel.h)
FltMgr.lib
IRQL <= APC_LEVEL

另请参阅

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation