您现在的位置:e-works > 智造书屋 > 书籍列表 > 防火墙技术与应用 > 基于NDIS中间层驱动的包过滤示例

第七章 基于NDIS的简单防火墙实现

第二节 基于NDIS中间层驱动的包过滤示例

    7.2基于NDIS中间层驱动的包过滤示例

    Windows DDK自带了一个中间层驱动层程序Passthru,本节详细介绍在其中添加过滤规则来实现一个具有简单过滤功能的程序。

    7.2.1 WDK的安装

    首先下载、安装WDK(Windows驱动程序工具包)。WDK的下载地址:http://msdn.microsoft.com/zh-cn/windows/ hardware/gg487463.aspx。

    解压后双击压缩包中的“KitSetup”文件,出现如图7-3所示的安装选项界面。

    安装过程没有需要特别注意的地方,只有两点需要注意。

    1)安装到一个简单的路径,例如C:\WinDDK,以避免在特殊情况下需要配置路径时产生麻烦,尤其要避免在路径上出现空格,否则可能出现编译问题。

    2)建议完全安装,否则可能错过一些代码实例。

 WDK安装选项界面

图7-3 WDK安装选项界面

    7.2.2Passthru介绍

    Passthru是微软的Windows驱动开发工具(WDK)附带的NDIS中间层驱动的实例,它向读者展示了实现NDIS 中间层过滤驱动框架的一种方法。但是,PassThru中没有实现有用的实际功能。要想让它具备实际的用途,必须向这个框架中添加自己所需的功能。

    Passthru驱动程序源代码位于“C:\WinDDK\src\network\ndis\passthru\driver”中。主要包含的文件如表7-1所示。

Passthru驱动程序中包含的文件列表

表7-1 Passthru驱动程序中包含的文件列表

    Passthru通过驱动入口函数DriverEntry向NDIS分别注册Miniport接口和Protocol接口。注册的过程是给Miniport接口和Protocal接口分别制订一组标准例程,这些例程也就是回调函数,系统通过这些回调函数完成相应的逻辑功能。