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 值,例如以下值之一:
返回代码 | 说明 |
---|---|
|
Buffer 参数指向的 缓冲区 不够大,无法存储请求的信息。 这是错误代码。 |
|
已找到匹配的微筛选器实例,但正在将其拆除。 这是错误代码。 请注意,此返回值不适用于旧筛选器驱动程序,因为无法卸载旧筛选器驱动程序。 |
|
为 InformationClass 参数指定了无效值。 例如,如果在 Windows Vista 之前的操作系统上指定 了 InstanceAggregateStandardInformation ,则例程将返回STATUS_INVALID_PARAMETER。 这是错误代码。 |
|
卷的实例/筛选器列表中没有更多条目。 这是一个警告代码。 |
注解
使用 Index 参数只是 FltEnumerateInstanceInformationByVolume 在 卷指定的卷的实例/筛选器列表中的微筛选器驱动程序和旧筛选器驱动程序中进行选择的一种方法。 由于实例/筛选器列表中的微筛选器驱动程序实例可以随时更改,因此不保证对具有相同 Index 和 Volume 值的 FltEnumerateInstanceInformationByVolume 的两次调用返回相同的结果。
从 Windows Vista 开始,当 InformationClass 参数的值为 InstanceAggregateStandardInformation 时,此例程可以返回旧筛选器驱动程序信息和微筛选器驱动程序实例信息。 对于早期操作系统,此例程无法返回旧筛选器信息,因为INSTANCE_AGGREGATE_STANDARD_INFORMATION结构不可用。
若要列出所有已注册的微筛选器驱动程序的筛选器信息,请调用 FltEnumerateFilterInformation。
若要获取给定微筛选器驱动程序的筛选器信息,请调用 FltGetFilterInformation。
若要枚举给定微筛选器驱动程序的所有实例,请调用 FltEnumerateInstanceInformationByFilter。
若要枚举所有卷上所有微筛选器驱动程序的实例,请调用 FltEnumerateInstances。
若要枚举筛选器管理器已知的所有卷,请调用 FltEnumerateVolumes。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | fltkernel.h (包括 FltKernel.h) |
Library | FltMgr.lib |
IRQL | <= APC_LEVEL |
另请参阅
FltEnumerateInstanceInformationByFilter
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈