阅读:3496回复:6
【讨论】多网卡下的ndis驱动
现在的机器多网卡也是很平常的事了,如何处理多网卡下ndis驱动的问题呢??
我们在写驱动的时候,在driverentry中设置了设备名和符号连接名,然后安装到指定网卡,再在应用程序中通过createfile打开符号连接名来获取驱动的句柄从而对驱动进行操作。 那么,如果有多个网卡的情况下,论坛中的自动安装网卡驱动的程序如何去知道要安装到哪块网卡呢?即使都安装后,在应用程序中createfile的时候,驱动的符号连接名都是一样的,怎么知道要打开的哪一个驱动呢??? 以上!大家来探讨一下,有这方面经验的大大们还望不吝赐教,分享分享呵 |
|
沙发#
发布于:2011-01-25 10:15
不知道你是说哪层的驱动? 协议层 中间层。 问的也挺乱。 至于多网卡,可以通过他们的MAC地址进行区分。至于你说自动安装代码安装到哪个网卡? 默认是绑定所有网卡(IMD)。
|
|
|
板凳#
发布于:2011-01-25 10:28
我用的是微软例子代码改写的ndis驱动,应该是中间层驱动。
今天安装了第二块网卡,第一块网卡上安装了驱动的,第二块网卡弄好后多了一个本地连接,其属性中项目和第一块的一样~~也有我之前的驱动。 因为我在驱动中创建的符号连接名,然后在应用层打开这个符号链接来获取驱动句柄对驱动进行读写控制等操作,现在两块网卡都是一样的驱动了,我在应用层打开的是谁呢?? |
|
地板#
发布于:2011-01-25 10:33
应用层打开的是自己的驱动(IMD),自己的驱动再去过滤网卡驱动的接收和发送的数据。
|
|
|
地下室#
发布于:2011-01-25 11:52
|
|
5楼#
发布于:2011-01-25 14:15
你的同时是宏观的。 微观来说只对一个网卡操作。
1 区分网卡(MAC地址) 2 分别处理 |
|
|
6楼#
发布于:2011-01-26 10:24
那我可不可以这样理解:
驱动我只要写一个,两块网卡都是安装的同一个驱动,我在应用层对我的过滤驱动发出了操作指令,到这里我的工作就完成了,然后由驱动去分别处理那两块网卡。 不知道是不是这么回事?~望指教,多谢! |
|