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 值,例如以下值之一:

返回代码 说明
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter 遇到池分配失败。 这是错误代码。
STATUS_INVALID_PARAMETER
下列类型作之一:
  • 注册结构的 Version 成员未设置为 FLT_REGISTRATION_VERSION。
  • 注册结构中的一个非 NULL 名称提供程序例程设置为无效值。 FLT_REGISTRATION的 GenerateFileNameCallbackNormalizeNameComponentCallbackNormalizeNameComponentExCallback 成员指向名称提供程序例程。
STATUS_INVALID_PARAMETER是错误代码。
STATUS_FLT_NOT_INITIALIZED
筛选器管理器在尝试注册时未初始化。 确保筛选器管理器已作为驱动程序加载。 这是错误代码。
STATUS_OBJECT_NAME_NOT_FOUND
在注册表中找不到筛选器服务项。

-或-

筛选器实例未注册。

注解

每个微筛选器驱动程序必须从其 DriverEntry 例程调用 FltRegisterFilter,以将自身添加到已注册的微筛选器驱动程序的全局列表中,并为筛选器管理器提供回调函数列表和有关微筛选器驱动程序的其他信息。

FltRegisterFilter 返回 *RetFilter 中微筛选器驱动程序的不透明筛选器指针。 此指针值唯一标识微筛选器驱动程序,只要加载微筛选器驱动程序,它就保持不变。 微筛选器驱动程序应保存此指针,因为它是 FltStartFilteringFltUnregisterFilter 的必需参数。

调用 FltRegisterFilter 后,微筛选器驱动程序通常会调用 FltStartFiltering 以开始筛选 I/O 操作。

微筛选器驱动程序只能调用 FltRegisterFilter 来注册自身,而不能调用其他微筛选器驱动程序。

若要注销自身,微筛选器驱动程序将调用 FltUnregisterFilter

要求

要求
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter