FltEnumerateFilters 函数 (fltkernel.h)
FltEnumerateFilters 例程枚举系统中所有已注册的微型筛选器驱动程序。
语法
NTSTATUS FLTAPI FltEnumerateFilters(
[out] PFLT_FILTER *FilterList,
[in] ULONG FilterListSize,
[out] PULONG NumberFiltersReturned
);
参数
[out] FilterList
指向调用方分配的缓冲区的指针,该缓冲区接收不透明的筛选器指针数组。 此参数是可选的,如果 filterListSize 参数的 值为零,则可以 NULL。 如果在输入时 FilterListSize 为零 ,并且 filterListNULL,则 NumberFiltersReturned 参数将接收找到的小筛选器驱动程序数。
[in] FilterListSize
FilterList 参数指向的缓冲区可以容纳的不透明筛选器指针数。 此参数是可选的,可以是零。 如果在输入时 FilterListSize 为零 ,并且 filterListNULL,则 NumberFiltersReturned 参数将接收找到的小筛选器驱动程序数。
[out] NumberFiltersReturned
指向调用方分配的变量的指针,该变量接收 FilterList 参数指向的数组中返回的不透明筛选器指针数。 如果 FilterListSize 参数值太小,并且 FilterList 在输入时非NULL,FltEnumerateFilters 返回STATUS_BUFFER_TOO_SMALL,并将 NumberFiltersReturned 设置为指向找到的小筛选器驱动程序数。 此参数是必需的,不能 NULL。
返回值
FltEnumerateFilters 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:
返回代码 | 描述 |
---|---|
|
FilterList 参数指向的缓冲区不够大,无法存储请求的信息。 这是一个错误代码。 |
言论
由于筛选器可以随时注册,因此无法保证两次调用 FltEnumerateFilters 返回相同的结果。
FltEnumerateFilters 向数组中返回的每个不透明筛选器指针添加一个运行引用,FilterList 参数指向该数组。 不再需要这些指针时,调用方必须通过在每个指针上调用 FltObjectDereference 来释放这些指针。 因此,对 FltEnumerateFilters 的每个成功调用都必须匹配对每个返回的筛选器指针 FltObjectDereference 的后续调用。
若要列出所有已注册的微型筛选器驱动程序的筛选器信息,请调用 FltEnumerateFilterInformation。
若要枚举所有卷上所有微型筛选器驱动程序的实例,请调用 FltEnumerateInstances。
若要枚举筛选器管理器已知的所有卷,请调用 FltEnumerateVolumes。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | fltkernel.h (包括 Fltkernel.h) |
库 | FltMgr.lib |
IRQL | <= APC_LEVEL |