by fanxiushu 2019-01-16 转载或引用请注明原始作者
这里讨论的都是基于WIN7以上平台,NDIS 6.0以上版本的网络驱动。
做个驱动的目的,是因为很早之前,我使用 TDI 和 NDIS5.1 框架的passthru中间层驱动,实现的基于应用层的NAT程序,
之所以说是基于应用层,是把passthru所有网络通讯数据包转发到应用层来处理,
在应用层NAT程序实现了大量的代码来处理NAT功能,
以及针对程序限流(免得一些恶心的程序疯狂的占用上传带宽),监控程序流量等多种功能。
并且长期运行在我的电脑上,在很早的CSDN博客中,曾经断断续续的提到过NAT的开发过程,有兴趣可以去查看这些文章。
当时主要运行在WINXP和WIN7中,这没有什么问题。到了WIN10平台,虽然 TDI 依然可以使用,
但是基于NDIS5.1框架的中间层驱动已经无法安装和运行了。因此想着修改驱动,本来是打算整个用WFP框架替换的,
WFP既能解决以前使用TDI才能处理的应用进程和端口关联问题,又能获取到IP数据包进行NAT转发和拦截。
但是我大量应用层代码,都是基于以太网数据包进行的分析处理,改起来实在蛋疼,因此想到了NDISFilter,跟passthru非常接近。
只需修改驱动代码,甚至连应用层接口都可以不修改,直接能用。开发完成之后,证明这确实是个好的选择。
windows平台内核中关于网络通讯这部分,分层是清晰的
windows7以上平台 NDISFilter 网卡过滤驱动开发
于 2019-01-16 23:18:24 首次发布