我正在使用多个相同的设备,我希望能够同时读取它们。因此,所有设备的产品和供应商ID均相同。我想知道我是否能够并行读取它们。
我认为应该可行,因为对于特定的设备路径,您将创建一个唯一的winusb句柄以及一个唯一的createfile句柄。
但是在实践中,我意识到它没有用。我没有使用重叠的结构,因为由于独特的createfile句柄,它们完全分开了。从设备读取的数据不是并行读取,而是仅读取第一个设备,第二个,第三个设备...
我用C ++编写了代码,我想得到一些建议,谢谢。
使用重叠结构是否可以解决问题?
还是不打算以这种方式使用winusb?
这是我的代码的链接, https://drive.google.com/drive/folders/1qvcGwNLxzJ0oRrFZbtyZ7g0zCU0XUG1n?usp=sharing
答案 0 :(得分:0)
是的,您可以使用WinUSB与两个不同的USB设备并行通信,无论它们是否相同。您将使用两条不同的路径两次调用CreateFile
。要真正获得并行性,您可能需要使用重叠的I / O或使用多个线程。
I / O重叠的点是,您可以从单个线程非常快速地启动多个请求,并且操作系统将并行处理它们,然后您可以查询以查看它们是否已完成。