fltRegisterFilter 函数 (fltkernel.h)
FltRegisterFilter 注册微筛选器驱动程序。
语法
NTSTATUS FLTAPI FltRegisterFilter(
[in] PDRIVER_OBJECT Driver,
[in] const FLT_REGISTRATION *Registration,
[out] PFLT_FILTER *RetFilter
);
参数
[in] Driver
指向微筛选器驱动程序的驱动程序对象的指针。 这应该是作为输入传递到微筛选器驱动程序的 DriverEntry 例程的同一个驱动程序对象指针。
[in] Registration
指向调用方分配的微筛选器驱动程序注册结构的指针 (FLT_REGISTRATION) 。
[out] RetFilter
指向调用方分配的变量的指针,该变量接收调用方不透明的筛选器指针。
返回值
FltRegisterFilter 返回STATUS_SUCCESS或相应的 NTSTATUS 值,例如以下值之一:
返回代码 | 说明 |
---|---|
|
FltRegisterFilter 遇到池分配失败。 这是错误代码。 |
|
下列类型作之一:
|
|
筛选器管理器在尝试注册时未初始化。 确保筛选器管理器已作为驱动程序加载。 这是错误代码。 |
|
在注册表中找不到筛选器服务项。
-或- 筛选器实例未注册。 |
注解
每个微筛选器驱动程序必须从其 DriverEntry 例程调用 FltRegisterFilter,以将自身添加到已注册的微筛选器驱动程序的全局列表中,并为筛选器管理器提供回调函数列表和有关微筛选器驱动程序的其他信息。
FltRegisterFilter 返回 *RetFilter 中微筛选器驱动程序的不透明筛选器指针。 此指针值唯一标识微筛选器驱动程序,只要加载微筛选器驱动程序,它就保持不变。 微筛选器驱动程序应保存此指针,因为它是 FltStartFiltering 和 FltUnregisterFilter 的必需参数。
调用 FltRegisterFilter 后,微筛选器驱动程序通常会调用 FltStartFiltering 以开始筛选 I/O 操作。
微筛选器驱动程序只能调用 FltRegisterFilter 来注册自身,而不能调用其他微筛选器驱动程序。
若要注销自身,微筛选器驱动程序将调用 FltUnregisterFilter。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | fltkernel.h (包括 Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |