第1页共14页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共14页基于PassThru的NDIS中间层驱动程序扩展概要:开发一个NDIS驱动是一项相对复杂的工作,这一方面是由于核心驱动本身有更多的限制和要求,有更多的“游戏规则”要求开发者理解和掌握,NDIS的复杂性把难度更是提高了,本文以PassThru为例,加上自己的理解,讲述了NDIS驱动的处理过程和在PassThru的基础上进行扩展的基本方法,本文并不是一个入门读物,所以没有提及任何核心驱动开发的相关知识,本文主要讲述的是NDIS中间层对数据包处理的流程
在阅读过程中,关于相关API的用法,或其它信息,请参看DDK文档
一NDIS驱动程序分类
NDIS(NetworkDriverInterfaceSpecification)是Windows网络驱动程序接口标准NDIS驱动程序分为三类:1
NDISMiniportNICDriver:底层的微端口NIC驱动,这就是网络设备的物理的驱动程序了
NDISProtocolDriver:高层的协议驱动,用来实现某个具体的协议栈,如TCP/IP协议栈,并向上导出TDI接口
NDISIntermediateDriver:中间层驱动,位于MiniportDriver和ProtocolDriver之间
二NDIS驱动结构简介
第2页共14页第1页共14页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共14页其中,最上层是一个NDISProtocolDriver,它向上提供一个TransportDriverInterface(TDI),向下通过NDIS接口与下面的NDIS中间层的上边界交互,NDIS中间层的下边界通过NDIS接口与下层的NDISMiniportDriver交互
最后,由NDISMiniportDriver利用N