概要:开发一个NDIS驱动是一项相对复杂的工作,这一方面是由于核心驱动本身有更多的限制和要求,有更多的“游戏规则”要求开发者理解和掌握,NDIS的复杂性把难度更是提高了,本文以PassThru为例,加上自己的理解,讲述了NDIS驱动的处理过程和在PassThru的基础上进行扩展的基本方法,本文并不是一个入门读物,所以没有提及任何核心驱动开发的相关知识,本文主要讲述的是NDIS中间层对数据包处理的流程。在阅读过程中,关于相关API的用法,或其它信息,请参看DDK文档。
一 NDIS驱动程序分类.
NDIS(Network
Driver Interface
Specification)是Windows网络驱动程序接口标准,NDIS驱动程序分为三类:
1. NDIS Miniport NIC Driver:
底层的微端口NIC驱动,这就是网络设备的物理的驱动程序了。
2. NDIS Protocol Driver:
高层的协议驱动,用来实现某个具体的协议栈,如TCP/IP协议栈,
并向上导出TDI接口。
3. NDIS Intermediate Driver: 中间层驱动,位于Miniport
Driver和Protocol Driver之间。
二 NDIS驱动结构简介.
TDI(Transport
Driver Interface)
_______________________________________________________
|
|
________|__________ _______|_______
|
| |
|
_____ | LAN
Protocols | |
|
| |
|___________________| |
|
| |_____________________