使用 NDIS 驱动程序同时非异步发送和接收的最佳方式是什么?

问题描述

我试图找到通过以太网第 2 层同时发送和接收的最佳方式,在本例中使用 Windows 上的 NDIS 驱动程序。 我正在评估的方式如下:

  1. 具有两个独立线程和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)
  1. 使用微型端口复用器 NDIS。我认为它适用于使用单个网卡同时发送和接收,但我不确定。

问题:

  • 通过单个网络接口执行同时通信的最佳方法是什么?

  • 为什么第 1 点中的 DeviceIoControl 函数不起作用,只能将一个驱动程序或其一个实例链接到外围设备?

非常感谢。最好的问候。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...