标题: 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