问题描述
我试图找到通过以太网第 2 层同时发送和接收的最佳方式,在本例中使用 Windows 上的 NDIS 驱动程序。 我正在评估的方式如下:
- 具有两个独立线程和NDIS驱动的同步功能 (fileapi.h Win32)。通过这种方式,我设法打开了驱动程序的两个句柄,但我没有设法独立链接两次网卡。有两张独立的卡片,一张用于阅读,一张用于书写,它可以正常工作。 Info:在此方法可用的地方张贴(在@falstaff 的最终评论中)。
第一个函数在两个线程中都能正常工作,第二个函数 (DeviceIoControl) 在第二次执行时失败。它表示无法重做第二个绑定,我曾希望使用单独的线程可以实现。
Handle = CreateFileA(
pDeviceName,DesiredAccess,ShareMode,lpSecurityAttributes,CreationDistribution,FlagsAndAttributes,NULL
);
DeviceIoControl(
Handle,IOCTL_NDISPROT_BIND_WAIT,NULL,&BytesReturned,NULL)
- 使用微型端口复用器 NDIS。我认为它适用于使用单个网卡同时发送和接收,但我不确定。
问题:
-
通过单个网络接口执行同时通信的最佳方法是什么?
-
为什么第 1 点中的 DeviceIoControl 函数不起作用,只能将一个驱动程序或其一个实例链接到外围设备?
非常感谢。最好的问候。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)