上图显示了WFP的基本体系结构。
过滤引擎
过滤引擎包含用户模式组件和内核模式组件,共同执行网络数据的所有过滤操作。过滤引擎包含多个过滤层,较为松散地映射到操作系统的网络栈层。按照所属的过滤引擎组件,过滤引擎层分为用户模式层和内核模式层。
用户模式组件执行远程过程调用和IPsec过滤,过滤引擎大约包含10个用户模式过滤层。
内核模式组件在TCP/IP栈的网络与传输层执行过滤,该组件在分类过程中也调用可用的callout函数,过滤引擎包含大约50个内核模式过滤层。
基本过滤引擎
基本过滤引擎(BFE)是一个用户模式服务(bfe.dll,运行在svchost.exe进程),协调WFP组件,BFE执行的主要任务是向系统中添加或移除过滤器、存储过滤器配置以及强化WFP配置安全性。应用程序与BFE的通讯通过WFP管理函数进行。
Callout Drivers
通过在一个或多个内核模式过滤层上向过滤引擎添加定制callout函数,Callout drivers提供额外的过滤功能。Callouts支持深度检查和封包及流修改。callout driver向过滤引擎添加其callout函数后,指定一个特定驱动程序callout函数的过滤器可以被添加到过滤进程,此类过滤器既可以被用户模式管理程序添加,也可以被callout driver自身添加。随Windows Development Kit发布的内核模式接口只能用于需要的地方,且不能替代用户模式API。