阅读:1555回复:5
ndis中中间驱动,miniport和protocol的关系??搞蒙了
我原先的理解是ndis驱动有miniport和protocol上下两个接口,然后由中间驱动来做协调等的其他工作。
但现在看书,好像可以单独搞了miniport,protocol或中间驱动 麻烦各位帮我理清一下思路 谢谢了 |
|
沙发#
发布于:2003-05-08 08:31
Put it this way: An IM driver is between the protocol driver (such as TCP/IP) and miniport driver. To protocol driver, it exposes a miniport interface, to underlying miniport it looks like a protocol interface.
|
|
板凳#
发布于:2003-05-08 19:10
那用drivernetworks来创建驱动时,怎么还分intermediate,miniport,protocol三种ndis驱动
|
|
地板#
发布于:2003-05-08 23:19
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2003-05-11 11:40
我觉得还是没把问题说清楚
|
|
5楼#
发布于:2003-05-11 12:46
我原先的理解是ndis驱动有miniport和protocol上下两个接口,然后由中间驱动来做协调等的其他工作。 个人想法: 一个IM驱动包括miniport和protocol接口。 miniport负责和上层protocol通讯,也就是从protocol来看,ndis驱动是一个虚拟硬件,也就是miniport是给protocol上层使用的. 也就是因为这个原因,miniport的接口的函数表里包括大量的硬件操作,比如interrupt方面的函数。 而且,既然miniport在protocol下层,(大家都知道,向下调用是在发送数据的时候才需要),因此miniport主要实现send的功能,这个我想大家如果看过miniport的函数表会有体会。 protocol负责和下层硬件操作,也就是protocol接口是被硬件NIC驱动调用的,NIC驱动在下层,显然只要在接受数据的时候,才需要向上调用,也就是因为这个原因,protocol接口主要实现receive操作 其次,因为protocol接口是被NIC驱动(我们可以抽象理解为就是硬件体)调用的,大家都知道,硬件是独立于上层软件体的,他有自己的处理器,因此一般情况下,软件告诉硬件去完成某一件时期后,软件是马上返回而不是等待硬件的完成,而任何硬件操作完成后,都需要告诉软件“完成”了。 因此,大家如果去看protocol接口的设计,大家会发现包括了大量的\"complete\"函数,而相反在miniport接口里,一个也没有发现。 Miniport和Protocol接口之间没有任何的直接数据传递,比如Protocol接受到数据后,不回在通过Miniport接口。 大家应该理解一点: Protocol接口是给NIC驱动调用的 Miniport接口是给上层Protocol协议调用的 因此更不就没有必要在Protocol接口和Miniport接口之间有任何的数据传递。 以上只是我这一两天对NDIS驱动的分析,是一个完全的初学者,我只是假设我是操作系统开发者,我会怎么做的角度来分析这个问题,怎么样让用户开发驱动更加容易的角度出发。 如果有不对的地方,请各位指正。 |
|