围观网络之三 -- 浅探索NDIS5.1(1)

本文介绍了Windows 2000 & XP环境下NDIS5.x的网络架构,探讨了从WINSOCK API到协议驱动TCP/IP,再到中间层驱动和miniport适配器的堆叠结构。NDIS作为内核API补充,隐藏了网络框架的真实面貌。内容包括驱动初始化过程,如协议驱动和微端口驱动的注册,以及它们之间的关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本文讨论w2k&xp适用的ndis5.x 网络架构。

NDIS4.0源码太老,ROS又YY了太多,所以这次的参考代码基本都是自己f5的…具体结构都有了,我f5的毫无压力=。=

调试的时候利用IMD(中间层驱动)下断点,更无压力了...

NDIS5.x网络的堆叠结构大概是:

 

WINSOCK  API → afd → 协议驱动TCPIP(其上层是TDI接口 ) →可能存在的中间层驱动→NDISWAN 系统提供中间层驱动(用于简化规程对于miniport的绑定) →miniport适配器网卡驱动 



Ndis管理的部分,就是抽象成 "规程端(protocol edge) → 小端口端(miniport edge) → 规程端→ 小端口端" 这一流程的管理,tcpip是最靠前的规程驱动,只有规程端,真实网卡驱动只有小端口端,中间层驱动都同时具备小端口和规程的特征属性




WINSOCK供应用程序调用协议驱动主要处理网络连接的逻辑,afd将这些请求转化为协议层明白的参数(TDI规范)发给tcpip

 

如上图所示,实际上要更复杂一点,ndiswan是系统提供的一个中间层驱动,提供了许多服务

 

NDIS.sys除了像win32k一样作为内核的API补充支持,另外的作用就是隐藏整个网络框架的真像- -!(这是NDIS wrapper得名的原因?)  网络设备驱动与WDM框架不同,大概是 由于网络IO的特殊性以及出于对效率的考虑

 

一、驱动程序初始化 —— 向NDIS注册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值