网站大量收购独家精品文档,联系QQ:2885784924

NDIS中间层驱动技术 一、NDIS结构 1、网络驱动程序接口标准 NDIS.doc

NDIS中间层驱动技术 一、NDIS结构 1、网络驱动程序接口标准 NDIS.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NDIS中间层驱动技术 一、NDIS结构 1、网络驱动程序接口标准 ( NDIS )简介 网络驱动程序接口标准(NDIS)是微软为网络接口卡(NIC)的驱动程序提供的一种标准应用程序接口(API)。NDIS适用于服务器或工作站。 NDIS标准支持计算机通过不同的通信协议与网络相连,如:TCP,IPX, NetBIOS, AppleTalk等.N D I S在数据链路层(第二层)的MAC层执行其功能。NDIS支持以下网络驱动类型:小端口驱动(Miniport Driver),中间层驱动(Intermediate Driver),协议驱动( Protocol Driver)。NDIS结构如下图所示。 NDIS结构 (1)NDIS小型端口驱动程序( Miniport driver) 一个NDIS微端口驱动程序(也叫微端口NIC驱动程序)有两个基本功能: ·管理一个网络接口卡(NIC),包括通过NIC发送和接收数据。 ·与高层驱动程序相接,例如中间层驱动程序和传输协议驱动程序。 一个微端口驱动程序与它的NIC通信,并且通过NDIS库与高层驱动程序通信。NDIS库对外提供了一整套的函数(NdisXXX函数),这些函数封装了微端口需要调用的所有操作系统函数。同时,微端口必须向外提供一组入口(MiniportXxx函数),使NDIS可以为了完成自己或高层驱动程序的任务而访问微端口。发送和接收操作表明了NDIS与高层驱动程序和微端口NIC的相互作用。 ·当一个传输驱动程序发送一个包时,它调用一个NDIS库所提供的NdisXxx函数,NDIS于是通过调用由微端口提供的合适的MiniportXxx函数将包传递给微端口,然后微端口驱动程序通过调用恰当的NdisXxx函数将包传递给NIC来发送包。 ·当一个NIC接收到由NIC发给它的包时,它将产生一个由NDIS或NIC的微端口处理的中断。NDIS通过调用恰当的MiniportXxx函数指示NIC的微端口。微端口通过调用恰当的NdisXxx函数把数据从NIC传送到上层驱动程序,并且同时指示上层驱动程序接收包。 NDIS既支持无连接环境下的微端口驱动程序,也支持面向连接的微端口驱动程序。 无连接的微端口为无连接网络介质,例如Ethernt,FDDI和Token Ring,控制NIC。可将无连接微端口进一步分为以下几种子类型: ·串行化的驱动程序,它依靠NDIS对MiniportXxx函数调用进行串行化,并管理它们的发送队列。 ·非串行化驱动程序,它自己对MiniportXxx函数操作进行串行化,并且在内部对进入的发送包进行排队。它的意义在于有很高的效率,例如驱动程序的临界区(在一个时间段内只有一个线程可访问的代码区)。 面向连接的微端口为面向连接的网络介质,例如ATM和ISDN(综合业务数字网)。面向连接的微端口经常非串行化的——它自己对MiniportXxx函数操作进行串行化,并且在内部对进入的发送抱进行排队。 NDIS也支持广域网(WAN)范围的控制WAN NIC的微端口。 (2)NDIS中间层驱动程序 中间层驱动程序一般位于微端口驱动程序和传输协议驱动程序之间。因为它在驱动程序层结构的中间位置,所以既与上层协议驱动程序通信又要与下层微端口驱动程序通信。 ·在它的下界,中间层驱动程序提供了协议入口点(ProtocolXxx函数),NDIS调用这些函数传递下层微端口的请求。对于一个下层微端口驱动程序,一个中间层驱动程序这时就仿佛是一个协议驱动程序。 ·在它的上界,中间层驱动程序提供了微端口的入口指针(MiniportXxx函数),一个或多个上层协议驱动程序通过NDIS调用这些函数进行通信。对于上层协议驱动程序,一个中间层驱动程序这时就仿佛是一个微端口驱动程序。 虽然向上层提供了MiniportXxx函数的一个子集,但是事实上中间层驱动程序并不管理物理的NIC。它只是向上层协议提供了一个或多个可以绑定的虚拟适配器。对于一个协议驱动程序,一个由中间层驱动程序提供的适配器就如同一个物理的NIC。当协议驱动程序发送包或向一个实际的适配器时发出请求时,中间层驱动程序将传递这些包和请求到下层的微端口。当下层微端口向上发出接收包的指示、响应协议请求的信息或指示状态信息时,中间层驱动程序将这些包、响应、和状态指示传递给绑定在虚拟适配器上的协议驱动程序。 (3)NDIS协议驱动程序 一个网络协议在NDIS驱动程序层次结构中属于最高层驱动程序,而它经常在实现传输层协议的传输驱动程序中被用作最底层的驱动程序,例如TCP/IP或IPX/SPX。一个传输协议驱动程序分配包,从应用程序中将数据拷贝到包中,并且通过调用NDIS函数将这些包发送到低层驱动程序中。协议驱动程序也为从下层驱动程序中接收包提供了接口。一个传输协议驱动

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档