驱动程序可以包装其他驱动程序以使用WEBUSB吗

问题描述

我有一个要通过WebUsb访问的设备,该驱动程序是源关闭的,所以有没有办法创建我自己的驱动程序来包装官方驱动程序?只是为了使设备能够从chrome和WebUsb吗?

更新:

在对我有很大帮助的答案之后,我可以说以下话:

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

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

解决方法

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

没有有关该设备及其驱动程序的更多信息,我无法提供更准确的建议。

一个选项(可能需要大量工作但可能会更广泛地适用)是在现有驱动程序周围编写包装程序,以使其可以使用WebUSB连接到设备。已经有工作,例如,它通过提供内部使用WebUSB的libusb端口,将使用libusb的用户空间驱动程序移植到Web上。这对于开源驱动程序更容易工作,因为您可以重新编译它们以使用包装器。例如,如果这是开源的本机Windows驱动程序,则在网络上的模拟器内部运行该驱动程序将是一项艰巨的任务。