作为驱动程序开发人员,了解 WinUSB(Windows USB)可以显著简化开发过程,尤其是在使用 USB 设备时。 WinUSB 是 Windows 附带的通用驱动程序。 它允许你与 USB 设备通信,而无需编写自定义驱动程序。 使用此驱动程序可以节省时间、降低复杂性并确保不同 Windows 版本的兼容性。
使用 WinUSB 的主要优势
简化开发
- 易于使用:WinUSB 抽象化了 USB 通信中涉及的大部分复杂性,这使你能够更轻松地与 USB 设备交互。
- 无需自定义驱动程序:对于许多 USB 设备,可以直接使用 WinUSB,无需编写和维护自定义驱动程序。
跨平台兼容性
- 标准化接口:WinUSB 为 USB 通信提供标准化接口,这有助于确保不同 Windows 版本的兼容性。
时间和成本效益
- 缩短开发时间:使用 WinUSB 可以显著缩短开发和测试 USB 驱动程序所需的时间。
- 降低维护成本:由于Microsoft维护 WinUSB,因此可以依赖它进行更新和支持,从而降低长期维护成本。
访问 USB 功能
- 完整的 USB 功能:WinUSB 支持各种 USB 功能,包括大容量传输、控制传输、中断传输和时序传输。
您可以使用 WinUSB 完成的任务
设备通信
- 数据传输:使用批量、控制、中断或异时序传输向/从 USB 设备发送和接收数据。
- 控制请求:发送控制请求以配置设备或检索信息。
设备配置
- 设置配置:选择配置、接口和备用设置以配置 USB 设备。
- 终结点管理:管理数据传输的终结点。
设备枚举
- 设备标识:枚举和识别连接到系统的 USB 设备。
- 描述符检索:检索设备描述符、配置描述符、接口描述符和终结点描述符。
自定义应用程序
- 用户模式应用程序:开发使用 WinUSB API 与 USB 设备通信的用户模式应用程序。
- 固件更新:为 USB 设备实现固件更新机制。
测试和调试
- 原型制作:快速制作 USB 设备通信的原型,以测试硬件功能。
- 调试:使用 WinUSB 调试主机和 USB 设备之间的通信问题。
WinUSB 的组件
WinUSB 包括:
- 内核模式驱动程序(winusb.sys)
- 一个用户模式动态链接库(winusb.dll),用于公开 winusb.h 中所述的 WinUSB 函数。 借助这些函数,你可以使用用户模式软件管理 USB 设备。
默认情况下,winusb.sys作为上层筛选器驱动程序安装在设备的内核模式堆栈中。 应用与设备的 User-Mode 驱动程序框架(UMDF)函数驱动程序通信,以发出读取、写入或设备 I/O 控制请求。 在此配置中,winusb.sys充当设备堆栈的即插即用和电源所有者。 还可以将winusb.sys安装为 USB 设备的函数驱动程序。
WinUSB 入门
本部分包括有关以下方面的信息:
- 为设备选择正确的驱动程序
- 使用 WinUSB 与 USB 设备通信
- 将winusb.sys安装为 USB 设备的函数驱动程序
它还包括详细的代码示例,演示应用和 USB 设备如何通信。
注意
WinUSB 支持在 Windows 8 中开始的常时等量传输。