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
以下项之一:
  • 版本注册 结构的成员未设置为FLT_REGISTRATION_VERSION。
  • 注册 结构中的非 NULL 名称提供程序例程之一设置为无效值。 GenerateFileNameCallbackNormalizeNameComponentCallbackNormalizeNameComponentExCallback 成员 FLT_REGISTRATION 指向名称提供程序例程。
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)
FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter