是否可以使用 winusb 同时与多个相同的 usb 设备通信?

Is it possible to use winusb to communicate with multiple identical usb devices simultaneously?

我正在使用多个相同的设备,我希望能够同时读取它们。因此,所有设备的产品和供应商 ID 都相同。我想知道我是否能够并行读取它们。

在我看来,我认为这应该是可能的,因为对于特定的设备路径,您创建了一个唯一的 winusb 句柄以及一个唯一的 createfile 句柄。

然而在实践中,我意识到它没有用。我没有使用重叠结构,因为它们由于独特的 createfile 句柄而完全分开。从设备读取的数据不是并行读取的,而是只读取第一个设备、第二个、第三个等...

我是用c++写的代码,希望得到一些建议,谢谢。
使用重叠结构会解决问题吗? 还是 winusb 不适合这样使用?

这是我的代码的 link, https://drive.google.com/drive/folders/1qvcGwNLxzJ0oRrFZbtyZ7g0zCU0XUG1n?usp=sharing

是的,您可以使用 WinUSB 与两个不同的 USB 设备并行通信,无论它们是否相同。您将使用两条不同的路径调用 CreateFile 两次。要真正获得并行性,您需要使用重叠 I/O 或使用多个线程。

overlapped的要点I/O是可以非常快速的从一个线程开始多个请求,操作系统会并行处理,以后可以查询是否已经完成。