soloz
驱动牛犊
驱动牛犊
  • 注册日期2003-06-02
  • 最后登录2004-10-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1625回复:4

IMD中 m:n 的绑定关系的问题,谢谢!!!

楼主#
更多 发布于:2003-07-28 13:41
IMD的Protocol用来绑定底层NIC或者虚拟NIC,IMD的miniport是IMD向外公布的虚拟miniport。
1:1,很好理解就是Protocol绑定一个(虚拟)NIC,就在BindAdapter里面调用一次NdisIMInitializeDeviceInstanceEx,虚拟一个miniport。
1:n,就是BindAdapter里面循环调用n次NdisIMInitializeDeviceInstanceEx,虚拟n个miniport。
m:1,怎么理解?这里应该只是调用了一次NdisIMInitializeDeviceInstanceEx,那么是什么时候调用的?
是不是循环Adapter链表找到指需要的Adapter调用NdisIMInitializeDeviceInstanceEx ???
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-28 14:58
看lbfo的实现。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
quint
驱动牛犊
驱动牛犊
  • 注册日期2003-02-27
  • 最后登录2004-03-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-29 03:54
好像你的One-to-N和N-to-One理解和DDK文档的正好相反。

我的理解:
One-to-N:每当NDIS检测到每一个可用的NIC时,都要调要你提供给NDIS的ProtocolBindAdapter,对于One-to-N,你只在第一次绑定时调用NdisIMInitializeDeviceInstanceEx,只建立一个Virtual Adapter。在对其余的NIC的绑定,不再调用NdisIMInitializeDeviceInstanceEx,共享一个MiniportAdapterHandle。

N-to-One:在ProtocolBindAdapter中多次调用NdisIMIntializeDeviceInstanceEx,从而建立多个Virtual Adapter。
LinX
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2007-07-05
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望10点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-29 15:47
DDK 里的1:n是调用一次NdisIMInitializeDeviceInstanceEx, 而绑定n块物理卡片. 即创建一块虚拟卡.
这里需要NOTIFY OBJECT, 在NOTIFY OBJECT中, 已经有\"绑定关系\", 在DRIVER中, 只要调用一次NdisIMInitializeDeviceInstanceEx就可以了.
也是在NdisOpenAdapter之后调用. 这里需要注意, NdisIMInitializeDeviceInstanceEx只能调用一次!
soloz
驱动牛犊
驱动牛犊
  • 注册日期2003-06-02
  • 最后登录2004-10-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-31 11:29
只是调用一次,这个在程序里面,自己控制吗?
mikluo,lbfo是什么东东???

[编辑 -  7/31/03 by  soloz]
游客

返回顶部