阅读:1625回复:4
IMD中 m:n 的绑定关系的问题,谢谢!!!
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 ??? |
|
沙发#
发布于:2003-07-28 14:58
看lbfo的实现。
|
|
|
板凳#
发布于: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。 |
|
地板#
发布于:2003-07-29 15:47
DDK 里的1:n是调用一次NdisIMInitializeDeviceInstanceEx, 而绑定n块物理卡片. 即创建一块虚拟卡.
这里需要NOTIFY OBJECT, 在NOTIFY OBJECT中, 已经有\"绑定关系\", 在DRIVER中, 只要调用一次NdisIMInitializeDeviceInstanceEx就可以了. 也是在NdisOpenAdapter之后调用. 这里需要注意, NdisIMInitializeDeviceInstanceEx只能调用一次! |
|
地下室#
发布于:2003-07-31 11:29
只是调用一次,这个在程序里面,自己控制吗?
mikluo,lbfo是什么东东??? [编辑 - 7/31/03 by soloz] |
|