gpt4 book ai didi

usb - 自定义 USB VID/PID - 让 Windows 7 和 8 自动选择 usbser.sys 驱动程序

转载 作者:行者123 更新时间:2023-12-01 18:53:50 25 4
gpt4 key购买 nike

我正在为带有 STM32F070 的 USB 设备开发固件微 Controller 。我使用 STM32CubeMX 生成了裸机(无操作系统)代码库,将设备设置为 USB CDC(通信设备类),以便 Windows 7、8 和 10 自动将其检测为 VCP(虚拟 COM 端口)。驱动程序详细信息显示它正在使用 Windows usbser.sys 驱动程序。

USB CDC configuration in STM32CubeMX

USB Serial Device detected in Windows Device Manager

当我更改 USB 供应商 ID (VID) 或产品 ID (PID) 或制造商字符串时,Windows 10 设备管理器仍能快速将其检测为 USB 串行设备,但 Windows 7 或 8 则不会。Windows 7 和8 花了很长时间在 Windows Update 中搜索驱动程序,然后却找不到。

当设备具有特定于供应商的 USB VID、PID 值时,如何修改设备固件/描述符以使 Windows 7 和 8 主机能够自动安装设备的 usbser.sys 驱动程序和制造商字符串?

最佳答案

Windows 10 附带了一个名为 usbser.inf 的新驱动程序,它将匹配符合 USB CDC ACM 规范的设备,并导致为它们加载 usbser.sys 驱动程序。

要让您的 USB CDC ACM 设备在旧版本的 Windows 上运行,您需要自己提供一个 INF 文件,告诉 Windows 在发现具有您的供应商 ID 和产品 ID 的 USB 设备时加载 usbser.sys。对于 Windows 7、Vista 和 XP,这只是编写 INF 文件并将其分发给客户的简单问题。对于 Windows 8 及更高版本,您需要购买代码签名证书,然后对 INF 文件进行签名(或查看 zadig 和 libwdi 等可让您绕过签名检查的软件实用程序)。

请注意,签名与 WHQL 不同。获得签名证书后,您可以自行对驱动程序进行签名,无需任何等待时间或获得 Microsoft 的任何批准。

以下是使用 usbser.sys 的 INF 文件示例:

https://github.com/pololu/a-star/blob/master/drivers/a-star.inf

我在这篇文章中写了很多关于如何签署驱动程序包的内容:

http://www.davidegrayson.com/signing/

关于usb - 自定义 USB VID/PID - 让 Windows 7 和 8 自动选择 usbser.sys 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41541655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com