USB 客户端驱动程序开发的第一步

本部分介绍 USB 驱动程序开发概念和工具。 本部分适用于那些对驱动程序开发尚不熟悉但希望为Microsoft未提供内置驱动程序的USB设备实现驱动程序的开发人员。 本文档中将这些驱动程序称为 USB 客户端驱动程序 。 本节中的主题介绍高级 USB 概念,并提供有关执行 USB 客户端驱动程序常见任务的分步说明。 有关这些概念的详细信息,请参阅 USB 文档中的 USB 规范。

驱动程序开发人员必须具有C++编程语言的编码体验,并了解 函数指针回调函数事件处理程序的概念。 如果基于 User-Mode 驱动程序框架编写驱动程序,开发人员必须熟悉C++和 COM。

USB 客户端驱动程序开发人员学习路径

  1. 读取 USB 规范 3.2

    • 了解体系结构的行业规范和不同组件(设备、主机控制器和中心)。 了解数据流模型、主机和设备如何相互通信以及设备所需的请求格式非常重要。
  2. 获取测试 USB 设备。

    • 拥有一个 USB 设备及其硬件规格。 该规范描述了设备功能和受支持的供应商命令。 使用规范来确定设备驱动程序的功能和相关设计决策。

    • 如果不熟悉 USB 驱动程序开发,请使用 OSR USB FX2 学习工具包 。 该工具包最适合研究本文档集中包含的 USB 示例。

    • 拥有一个 Microsoft USB 测试工具(MUTT)设备。 可以从 JJG 技术购买 MUTT 硬件。 设备未安装固件。 若要安装固件,请下载 MUTT 软件包。 有关详细信息,请参阅包中包含的文档。

  3. 研究 USB 设备布局 和相关 USB 描述符

    • 通过读取配置描述符、每个支持的备用设置的接口描述符及其终结点描述符来描述设备功能。 通过使用 USBView,开发人员可以浏览所有 USB 控制器和连接到它们的 USB 设备,并检查设备配置。
  4. 选择用于开发 USB 客户端驱动程序的驱动程序模型

    • 根据目标设备的设计,确定驱动程序是否应为自定义驱动程序或使用Microsoft提供的驱动程序之一。 选择最佳驱动程序模型并描述每个模型支持的功能。
  5. 查看Microsoft提供的 USB 驱动程序堆栈和驱动程序开发概念。

  6. 准备开发和调试环境。

  7. 编写第一个驱动程序。

  8. 通过发送 USB 控制传输请求来扩展驱动程序。

  9. 扩展驱动程序以使用 WDF USB I/O 目标对象执行 USB 数据传输

USB 社区资源