如何使用WinUsb实现多个并发应用程序访问

时间:2010-11-02 15:08:27

标签: windows windows-services usb device-driver winusb

我们正在移植我们的USB设备dll以使用通用的WinUsb。 但是,WinUsb不支持同一设备的多个并发应用程序(相同的VID和PID)。 我想知道是否有办法使用WinUsb实现这种并发访问? 我读过有关过滤器驱动程序和服务。 1.我不想使用过滤器驱动程序,因为据我所知,这将必须通过WHQL,而我宁愿不去这条路径。 2.关于Windows服务:我应该如何实现它?如果服务获得对WinUsb的所有调用,并且如果另一个应用程序试图访问同一设备,它将关闭与第一个应用程序的连接,打开一个新连接,然后再返回?

在这种情况下,服务是否是正确的解决方案?除了我写的内容之外,还有其他方法可以实现解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:0)

过滤器驱动程序不需要传递WHQL。您只需要对驱动程序包所需的目录文件进行签名。这只需要验证/ ...的代码签名证书。 This应该是了解这一点的好起点。

然而,内核驱动程序很难开发。因此,COM服务器可能是更好的方法。您可以通过允许COM客户端从您的服务创建对象,然后在COM服务器中实现某种共享/互斥来实现服务中的共享。

可以相对快速地编写COM-exe服务器。