FltEnumerateInstanceInformationByVolume 函数 (fltkernel.h)

FltEnumerateInstanceInformationByVolume 例程提供有关附加到给定卷的微型筛选器驱动程序实例和旧筛选器驱动程序(仅限 Windows Vista)的信息。

语法

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolume(
  [in]  PFLT_VOLUME                Volume,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

参数

[in] Volume

卷的不透明指针。

[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 结构。 此结构从 Windows Vista 开始可用。

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

返回值

FltEnumerateInstanceInformationByVolume 返回STATUS_SUCCESS或适当的 NTSTATUS 值,例如以下值之一:

返回代码 描述
STATUS_BUFFER_TOO_SMALL
Buffer 参数指向的缓冲区不够大,无法存储请求的信息。 这是一个错误代码。
STATUS_FLT_DELETING_OBJECT
已找到匹配的微型筛选器实例,但正在被拆毁。 这是一个错误代码。 请注意,此返回值不适用于旧筛选器驱动程序,因为无法卸载旧筛选器驱动程序。
STATUS_INVALID_PARAMETER
InformationClass 参数指定了无效值。 例如,如果在 Windows Vista 之前的作系统上指定了 InstanceAggregateStandardInformation,则例程将返回STATUS_INVALID_PARAMETER。 这是一个错误代码。
STATUS_NO_MORE_ENTRIES
卷的实例/筛选器列表中没有更多条目。 这是一个警告代码。

言论

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

从 Windows Vista 开始,当 InformationClass 参数的值 InstanceAggregateStandardInformation时,此例程可以同时返回旧筛选器驱动程序信息和微型筛选器驱动程序实例信息。 对于早期作系统,此例程无法返回旧筛选器信息,因为INSTANCE_AGGREGATE_STANDARD_INFORMATION结构不可用。

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

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

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

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

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

要求

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

另请参阅

FltEnumerateFilterInformation

FltEnumerateInstanceInformationByFilter

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION