noble_shi
驱动牛犊
驱动牛犊
  • 注册日期2003-07-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分73分
  • 威望9点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1624回复:7

NDIS里是否存在这样一个事实?

楼主#
更多 发布于:2004-07-07 14:46
NDIS中间层驱动的安装是否存在这样一个事实:
(1)当安装一个中间层驱动后,将所有的协议驱动及其绑定的小端口驱动的绑定关系都解除掉,然后再将协议驱动绑定到我们安装的中间层驱动的MINIPORT,用我们安装的中间层驱动的PROTOCAL绑定原来的那些小端口驱动。

(2)我上面描述的对不对呀?如果对的话那么我们的中间层驱动是用什么方法判断那个协议驱动与那个小端口驱动绑定的呢?是利用WINDOWS的注册表项还是利用NDIS中协议驱动和小端口驱动的内部数据结构之间的联系来判断的?如果是利用注册表项,那是该项存在与注册表什么位置?

(3)如果我(1)中描述的不对,那中间层驱动到底是如何插入到已经绑定好的协议驱动和小端口驱动中去的?
    
(4)还有就是NDIS解除原来协议驱动和小端口驱动的方式,即是一次性解除所有的协议驱动和小端口驱动的绑定关系还是只解除一部分?它是根据什么来解除的,是注册表项吗?如果是的话,那是那个表项?

(5)最有一个问题:如果安装了2个中间层驱动,那第二个中间层驱动会在第一个中间层驱动的上面还是下面,即那个中间层驱动更接近网卡?

这些问题困扰着小弟,让小弟寝食不安,可能问题比较没水平,不过我确实是刚刚接触NDIS,各位大侠请间量!

[编辑 -  7/7/04 by  noble_shi]

[编辑 -  7/7/04 by  noble_shi]
noble_shi
驱动牛犊
驱动牛犊
  • 注册日期2003-07-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分73分
  • 威望9点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-08 08:26
没人相应!?自己UP一下把
wuren_13
驱动牛犊
驱动牛犊
  • 注册日期2004-07-07
  • 最后登录2004-09-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-08 17:53
假如是你来解决这个问题,你会怎么解决呢?
我想移植TCP/IP协议栈到Win2000下,大家能不能给点意见!具体见:http://www.driverdevelop.com/forum/html_72448.html?1089171822
noble_shi
驱动牛犊
驱动牛犊
  • 注册日期2003-07-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分73分
  • 威望9点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-08 18:56
我当然有好几种解决方案了,正因为想到这种方案可能性最大才这么问的呀!
当然了,我真正想问的是具体细节,比如到底是怎么解除绑定关系的,是通过PNP管理器发送IRP消息,然后驱动程序收到这个IRP消息后解除绑定的吗?
可是我怕这么问会没人回答才问的比较泛泛的,不好意思,呵呵
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-09 15:59
NDIS中间层驱动的安装是否存在这样一个事实:
(1)当安装一个中间层驱动后,将所有的协议驱动及其绑定的小端口驱动的绑定关系都解除掉,然后再将协议驱动绑定到我们安装的中间层驱动的MINIPORT,用我们安装的中间层驱动的PROTOCAL绑定原来的那些小端口驱动。

(2)我上面描述的对不对呀?如果对的话那么我们的中间层驱动是用什么方法判断那个协议驱动与那个小端口驱动绑定的呢?是利用WINDOWS的注册表项还是利用NDIS中协议驱动和小端口驱动的内部数据结构之间的联系来判断的?如果是利用注册表项,那是该项存在与注册表什么位置?

(3)如果我(1)中描述的不对,那中间层驱动到底是如何插入到已经绑定好的协议驱动和小端口驱动中去的?
    
(4)还有就是NDIS解除原来协议驱动和小端口驱动的方式,即是一次性解除所有的协议驱动和小端口驱动的绑定关系还是只解除一部分?它是根据什么来解除的,是注册表项吗?如果是的话,那是那个表项?

(5)最有一个问题:如果安装了2个中间层驱动,那第二个中间层驱动会在第一个中间层驱动的上面还是下面,即那个中间层驱动更接近网卡?

这些问题困扰着小弟,让小弟寝食不安,可能问题比较没水平,不过我确实是刚刚接触NDIS,各位大侠请间量!

[编辑 -  7/7/04 by  noble_shi]

[编辑 -  7/7/04 by  noble_shi]

问题1是显然的。
问题2:PASSTHRU中PtBindAdapter中对NdisOpenProtocolConfiguration的调用应该是你的答案,还有PtPNPHandler 也是相关的。
另外MPBundleSearchAndSetSecondary的处理对你理解BOUND的关系是重要的,尽管PASSTHRU并没有完全执行他。BIND关系是比较复杂的,几句话说不清楚,仔细分析代码更有好处。
问题5:下边。
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-09 16:03
filter.dll 也可以影响bind关系。但缺省是不影响。
noble_shi
驱动牛犊
驱动牛犊
  • 注册日期2003-07-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分73分
  • 威望9点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-13 08:01
我在我的WIN2K系统上先安装了xpassthru,又安装了PASSTRHU,发现PASSTHRU在xpassthru,即xpassthru更接近网卡,是不是说明后安装的IM比先安装的IM更靠上,更接近TCP/IP呀???
ririri
驱动牛犊
驱动牛犊
  • 注册日期2004-06-02
  • 最后登录2005-07-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-15 08:39
协议A先启动的,往往在底层
后启动的B,把自己绑定到底层A上去
然后C在启动,C把自己绑定到B上去
 
这样一层一层的建立起来
每一层都只把自己绑定在自己的下面一层
上面是谁,它没法管,只能干瞪眼被上面的绑定
游客

返回顶部