为 Windows 构建 USB 设备的概述

本部分提供 USB 外围设备制造商的链接。

USB 设备枚举过程

  • USB 堆栈如何枚举设备?

    Microsoft USB 驱动程序堆栈使用的枚举过程的详细说明 - 从堆栈检测到存在设备并向 PnP 管理器指示新设备已到达时开始。

  • WINDOWS 8 中的 USB 2.1、2.0、1.1 设备枚举更改

    在 Windows 8 中,我们在 USB 驱动程序堆栈中修改了堆栈枚举 USB 2.1、2.0 和 1.1 设备的方式。 这些修改支持新的 USB 功能并提高设备枚举性能。 阅读该文章是为了让设备/固件生成器能够轻松确定枚举失败的根本原因,

Microsoft OS 描述符

USB 设备将标准描述符存储在设备及其接口和终结点的固件中。 此外,设备可以存储类和供应商特定的描述符。 但是,这些描述符可以包含的信息类型是有限的。 IHV 通常必须使用Windows 更新或媒体(如 CD)为用户提供各种特定于设备的信息,例如图片、图标和自定义驱动程序。

IHV 可以使用 Microsoft OS 描述符将信息存储在固件中,而不是单独提供。 Window 通过读取 Microsoft OS 描述符检索该信息,并使用它来安装和配置设备,而无需任何用户交互。 请参阅 适用于 USB 设备的 Microsoft OS 描述符

  • Microsoft OS 1.0 描述符规范

    本文档介绍 Microsoft OS 描述符。 它包括 OS 字符串描述符、扩展属性 OS 功能描述符和 OS 功能描述符格式的规范。

  • Microsoft OS 2.0 描述符规范

    本文档定义并介绍了 Microsoft OS 描述符 2.0 版的实现。 Microsoft OS 2.0 描述符的目标是解决 1.0 版 OS 描述符的限制和可靠性问题,并为 USB 设备启用特定于 Windows 的新功能。

  • 使用 Microsoft OS 描述符将 Winusb.sys 加载为函数驱动程序

    IHV 可以定义某些 Microsoft 操作系统 (OS) 功能描述符,将兼容 ID 报告为“WINUSB”。 这些描述符允许 Windows 在没有自定义 INF 文件的情况下将 Winusb.sys 加载为设备的函数驱动程序。 有关如何定义兼容 ID 的示例,请参阅扩展兼容性 ID OS 功能描述符规范的示例部分。 该规范包含在 Microsoft OS 1.0 描述符规范的下载中。

设置容器 ID

  • USB 设备的容器 ID

    描述如何生成通用串行总线 (USB) 设备的容器 ID。

  • Windows 中的 USB ContainerID

    设备制造商指南,指导其多功能 USB 设备进行编程,以便 Windows 能够正确检测到它们。

  • 如何为 USB 设备生成容器 ID

    博客文章介绍了设备如何报告容器 ID,以便 Windows 在 设备和打印机 中正确枚举和显示设备。 对于支持多个功能 (复合设备) 或组件 (复合设备) 的设备,设备必须报告每个部分的相同 ID。 设备必须在 Microsoft OS ContainerID 描述符中报告 ID。

实现电源管理

  • USB 3.0 硬件中的链接电源管理

    本文档为硬件供应商和 OEM 提供了有关将电源管理 (LPM) 与选择性挂起结合使用来实现 USB 设备的电源管理的指南。 它介绍了从 U1 到 U2 的硬件转换,并提供有关 USB 控制器、集线器和设备中 LPM 实现的常见缺陷的信息。

  • 揭秘选择性暂停

    此博客文章介绍了 USB 驱动程序堆栈如何处理 USB 3.0 设备中的功能和选择性挂起。

调试和诊断工具

  • Windows 的 USB 事件跟踪

    Windows (ETW) 事件跟踪是操作系统提供的常规用途高速跟踪工具。 它包括有关如何安装工具、创建跟踪文件以及分析 USB 跟踪文件中的事件的信息。

  • WPP 软件跟踪

    如何使用 Windows 软件跟踪预处理器 (WPP) 的默认操作来跟踪软件组件 (跟踪提供程序) 的操作。

  • USB 3.0 扩展 (usb3kd.dll)

    这些命令显示来自 USB 3.0 堆栈中三个驱动程序维护的数据结构的信息:USB 3.0 集线器驱动程序、USB 主机控制器扩展驱动程序和 USB 3.0 主机控制器驱动程序。

  • USB 2.0 扩展 (usb2kd.dll)

    这些命令显示 USB 2.0 堆栈中驱动程序维护的数据结构的信息:USB 2.0 集线器驱动程序和 USB 2.0 主机控制器驱动程序。