我们正在移植我们的USB设备dll以使用通用的WinUsb。 但是,WinUsb不支持同一设备的多个并发应用程序(相同的VID和PID)。 我想知道是否有办法使用WinUsb实现这种并发访问? 我读过有关过滤器驱动程序和服务。 1.我不想使用过滤器驱动程序,因为据我所知,这将必须通过WHQL,而我宁愿不去这条路径。 2.关于Windows服务:我应该如何实现它?如果服务获得对WinUsb的所有调用,并且如果另一个应用程序试图访问同一设备,它将关闭与第一个应用程序的连接,打开一个新连接,然后再返回?
在这种情况下,服务是否是正确的解决方案?除了我写的内容之外,还有其他方法可以实现解决方案吗?
感谢。
答案 0 :(得分:0)
过滤器驱动程序不需要传递WHQL。您只需要对驱动程序包所需的目录文件进行签名。这只需要验证/ ...的代码签名证书。 This应该是了解这一点的好起点。
然而,内核驱动程序很难开发。因此,COM服务器可能是更好的方法。您可以通过允许COM客户端从您的服务创建对象,然后在COM服务器中实现某种共享/互斥来实现服务中的共享。
可以相对快速地编写COM-exe服务器。