Windows 驱动程序是否可以包装另一个驱动程序以使用WEBUSB

Windows 驱动程序是否可以包装另一个驱动程序以使用WEBUSB,windows,driver,webusb,Windows,Driver,Webusb,我有一个设备,我想通过WebUsb访问,驱动程序的源代码是封闭的,所以有没有一种方法我可以创建自己的驱动程序来包装官方驱动程序?只是为了让设备从chrome和WebUsb中可见 更新: 在回答了对我帮助很大的问题后,我可以说: 如果您无法访问USB固件,并且无法修改它以使其与WebUsb兼容,那么下一种方法是了解设备如何在低级别工作,您不需要了解完整的USB协议,但至少知道如何发送和接收命令,并且在WINDOWS中,USB设备的驱动程序必须是WinUsb.sys 您不需要创建一个全新的驱动程序,

我有一个设备,我想通过WebUsb访问,驱动程序的源代码是封闭的,所以有没有一种方法我可以创建自己的驱动程序来包装官方驱动程序?只是为了让设备从chrome和WebUsb中可见

更新:

在回答了对我帮助很大的问题后,我可以说:

如果您无法访问USB固件,并且无法修改它以使其与WebUsb兼容,那么下一种方法是了解设备如何在低级别工作,您不需要了解完整的USB协议,但至少知道如何发送和接收命令,并且在WINDOWS中,USB设备的驱动程序必须是WinUsb.sys


您不需要创建一个全新的驱动程序,只需要知道设备和计算机之间的通信是如何工作的,然后用javascript重写即可。

WebUSB旨在提供对USB设备的低级别访问,在单个USB传输级别。如果设备具有现有驱动程序,则应负责传输,并向系统上的应用程序提供更高级别的接口。试图将其包装成再次呈现低级界面的东西将适得其反

如果没有更多关于该设备及其驱动程序的信息,我无法给出更准确的建议


其中一个选项需要大量工作,但可能更广泛地适用,就是在现有驱动程序周围编写一个包装器,允许它使用WebUSB连接到设备。例如,它通过提供一个内部使用WebUSB的libusb端口,将使用libusb的用户空间驱动程序移植到web。这对于开源驱动程序来说更容易,因为您可以重新编译它们以使用包装器。例如,如果这是一个封闭源代码的本机Windows驱动程序,在web上的仿真器中运行它将是一项艰巨的任务。

您好,感谢您花时间回答这个问题,经过大量的研究和逆向工程,我能够理解驱动程序,并且现在能够与Usb设备通信。谢谢你在这里提供给我的所有信息。最后一个问题是,在windows中,我是否可以拥有自己的驱动程序,或者它是否需要始终为WinUsb.sys tahnksOn windows用户空间应用程序需要WinUsb.sys提供ioctl接口,允许它向设备发送传输。Linux和macOS上没有类似的“内置”接口。自定义驱动程序可以显示相同的ioctl界面,但浏览器需要知道与Microsoft兼容的驱动程序以及目前不支持的驱动程序。