2024年4月21日发(作者:)

Windows TDI过滤驱动开发

[版权所有]

  本文作者是楚狂人,代码来源于开源工程tdifw与DDK的例子,

  有问题欢迎与我联系讨论。

  mail:*******************

  QQ: 16191935

  msn:************************

-----------------------------------------------------------

       

Windows  TDI过滤驱动开发

             目 录

(0) TDI概要

(1) 准备工作

(2) TDI设备与驱动入手

(3) 绑定设备

(4) 简单的处理请求

(5) 基础过滤框架

(6) 主要过滤的请求类型

(7) CREATE的过滤

(8) 准备解析ip地址与端口

(9) 获取生成的IP地址和端口

(10) 连接终端的生成与相关信息的保存

(11) TDI_ASSOCIATE_ADDRESS的过滤

(12) TDI_CONNECT的过滤

(13) TDI_SEND,TDI_RECEIVE,TDI_SEND_DATAGRAM,TDI_RECEIVE_DATAGRAM

(14) 设置事件

(15) TDI_EVENT_CONNECT类型的设置事件的过滤

(16) 一个传说中的问题

(17) 收尾与清理的工作

(第 1/29 页)

Windows TDI过滤驱动开发

(0) TDI概要

  最早出现的网络驱动应该是网卡驱动,这是Windows的理所当然的需求,为了进一步分割应

用程序的网络数据传输与下层协议直到下层硬件的关系,又出现了协议驱动,后来微软和硬件商

联合制定了NDIS标准,作为从硬件到协议的内核驱动程序的调用接口标准,而协议驱动与应用层

的API之间,则出现了TDI接口。

  最近国内安全软件的开发兴起,网络驱动的开发在其中有不少的应用,如果我们学习TDI接

口的话,可能有以下一些目的:

  自己要开发协议驱动,向上提供TDI接口,这种可能性存在,但不广泛。

  我们想自己调用TDI接口,来进行网络数据传输,意义不大。

  我们对TDI进行协议层过滤,开发防火墙或类似安全监控软件,这种应用还是比较多的。

(第 2/29 页)