V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CFCL
V2EX  ›  程序员

求助!有没有会 WINUSB 驱动开发的,需要提供一下思路或者方法

  •  
  •   CFCL · 2023-09-22 17:27:05 +08:00 · 1661 次点击
    这是一个创建于 438 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有会 WINUSB 驱动开发的,需要提供一下思路或者方法

    需求

    1. 给已知 pid,vid 的设备安装 WINUSB 驱动。
    2. 可以自定义设备管理器显示的名称。
    3. 设备插入电脑就自动识别为 WINUSB 设备。

    自己没有这方面的经验,网上找资料不是很多,不知如何下手,所以请各位提供一下思路。

    9 条回复    2023-09-23 17:22:44 +08:00
    ysc3839
        1
    ysc3839  
       2023-09-22 17:31:11 +08:00 via Android
    只需要个 inf 文件让对应设备加载 WinUSB 驱动即可,内容可以参考网上各种 WinUSB 的 inf 文件。不过这个 inf 需要签名,如果没钱买签名的话可以自签名然后添加到系统信任证书列表里。
    CFCL
        3
    CFCL  
    OP
       2023-09-22 17:44:15 +08:00
    @ysc3839 数字签名的钱没问题的。inf 这个方法不是很懂,设备不止一种,串口的也得换成 WINUSB 的。
    ysc3839
        4
    ysc3839  
       2023-09-22 17:52:21 +08:00 via Android
    @CFCL Zidag 原理就是根据设备 id 生成一个 inf ,然后自签名并安装。
    “inf 这个方法不是很懂”
    就是按对应格式写一个 inf ,签名安装即可。设备不止一种的话,inf 里允许你写多个设备 id 。
    RikkaW
        5
    RikkaW  
       2023-09-22 20:47:23 +08:00
    设备的名称不是由设备本身回报的吗?能否通过强行给它安装驱动更改它不知道。
    自动识别为 WinUSB 需要在设备端实现,需要设备实现回报 MS OS 2.0 描述符,可以阅读 https://www.usbzh.com/article/detail-1069.html https://developer.chrome.com/articles/build-for-webusb/(其中也包含了 MS OS 2.0 描述符)。
    ysc3839
        6
    ysc3839  
       2023-09-22 22:19:16 +08:00 via Android
    @RikkaW inf 能设置设备名称。而且设备管理器里面不会显示设备报告的名称,只会显示驱动提供的,比如一个 U 盘报告叫 USB Disk ,设备管理器里只会显示 USB Mass Storage 。
    TESTFLIGHT2021
        7
    TESTFLIGHT2021  
       2023-09-23 11:48:04 +08:00
    LIBUSB
    TESTFLIGHT2021
        8
    TESTFLIGHT2021  
       2023-09-23 11:48:28 +08:00
    要不就用 cypress 的驱动
    electronic
        9
    electronic  
       2023-09-23 17:22:44 +08:00
    WINUSB 不需要驱动,直插直用,用 STM32 实现过。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1312 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:38 · PVG 07:38 · LAX 15:38 · JFK 18:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.