Skip to content

Latest commit

 

History

History
58 lines (40 loc) · 3.14 KB

200408171241.txt.md

File metadata and controls

58 lines (40 loc) · 3.14 KB

标题: NDIS基础知识

[1]给了一张Windows网络架构图,有助于理解NDIS,推荐入门者先看看这张图。

[2]有一些关于Windows网络架构的讨论,这只是一种个人学术观点,仅供参考,不可 当成官方结论。

NDIS(Network Device Interface Specification)提供一个系统的、完整的Wrapper, NDIS Miniport Driver、NDIS ProtocolDriver等等均属于"插入"这个Wrapper中的" 模块",这些驱动调用Wrapper提供的函数,同时也向Wrapper注册回调函数,整个运 作过程由Wrapper统一调度。Wrapper对应ndis.sys。

TDI Client Driver利用协议驱动上沿引出的TDI接口(Transport Data Interface)实 现命名管道、邮槽、Winsock等等。

下面这些注册表内容对应着Network Control Panel Applet (NCPA):


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E972-E325-11CE-BFC1-08002bE10318} HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E973-E325-11CE-BFC1-08002BE10318} HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E974-E325-11CE-BFC1-08002BE10318} HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E975-E325-11CE-BFC1-08002BE10318}

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network{4D36E972-E325-11CE-BFC1-08002BE10318}

对应GUID_DEVCLASS_NET、Miniport Driver、Net。收到包后NDIS首先调用
Miniport Driver进行处理。Miniport Driver负责控制网卡硬件特性,在协议驱
动与网卡之间传递报文。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network{4D36E973-E325-11CE-BFC1-08002BE10318}

对应GUID_DEVCLASS_NETCLIENT、Client Driver、NetClient。"Client for
Microsoft Networks"即是此类型驱动。负责向用户态提供NetBIOS Client API。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network{4D36E974-E325-11CE-BFC1-08002BE10318}

对应GUID_DEVCLASS_NETSERVICE、Service Driver、NetService。"File and
Printer Sharing for Microsoft Networks"即是此类型驱动。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network{4D36E975-E325-11CE-BFC1-08002BE10318}

对应GUID_DEVCLASS_NETTRANS、Protocol Driver、NetTrans。负责实现各种网
络协议,比如tcpip.sys实现了TCP/IP协议。协议驱动接收Miniport Driver上传
的报文,也接收Client Driver、Service Driver、TDI Client Driver下传的报
文。

中间层驱动(Intermediate Driver)是一种混合型驱动,位于Miniport Driver与协议 驱动之间,对下看起来像协议驱动,对上看起来像Miniport Driver。

在这些不同类型的驱动之间有一种操作叫作"绑定",其本质在于向NDIS Wrapper指明 报文(Packet)的传递路线。

[ 1] Windows Network Data And Packet Filtering Frequently Asked Questions(这里有一张Network Architecture Diagram) http://www.pcausa.com/resources/winpktfilter.htm

[ 2] Network Architecture in Windows NT-based Operating Systems http://plasmic.com/~vizzini/ntnetarch.html