注册微筛选器驱动程序
每个微筛选器驱动程序必须从其 DriverEntry 例程调用 FltRegisterFilter,以将自身添加到已注册的微筛选器驱动程序的全局列表中,并为筛选器管理器提供回调例程列表和有关驱动程序的其他信息。
在 MiniSpy 示例中,将注册微筛选器驱动程序,如以下代码示例所示:
NTSTATUS status;
status = FltRegisterFilter(
DriverObject, //Driver
&FilterRegistration, //Registration
&MiniSpyData.FilterHandle); //RetFilter
FltRegisterFilter 有两个输入参数。 第一 个驱动程序是微型筛选器驱动程序作为 DriverEntry 例程的 DriverObject 输入参数接收的 驱动程序 对象指针。 第二个 注册是指向 FLT_REGISTRATION 结构的指针,该结构包含微筛选器驱动程序的回调例程的入口点。
此外, FltRegisterFilter 有一个输出参数 RetFilter,用于接收微筛选器驱动程序的不透明筛选器指针。 此筛选器指针是许多 FltXxx 支持例程(包括 FltStartFiltering 和 FltUnregisterFilter)的必需输入参数。