USB 客户端驱动程序开发的首要步骤

本节介绍 USB 驱动程序开发概念和工具。 本节适用于希望为 Microsoft 未提供开箱驱动程序的 USB 设备实施驱动程序的驱动程序开发人员。 这些驱动程序在本文档中称为 USB 客户端驱动程序。 本节的主题描述了高级 USB 概念,并提供了有关执行 USB 客户端驱动程序常见任务的分步说明。 有关这些概念的详细信息,请参阅 USB 文档中的 USB 规范。

驱动程序开发人员必须具备 C++ 编程语言的编码经验,并理解函数指针回调函数事件处理程序的概念。 如果基于用户模式驱动程序框架编写驱动程序,开发人员必须熟悉 C++ 和 COM。

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

  1. 阅读 USB 规范 3.2

    • 了解行业规范和架构的不同组件(设备、主控制器和集线器)。 了解数据流模型、主机和设备之间的通信方式以及设备期望的请求格式非常重要。
  2. 获取测试 USB 设备。

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

    • 如果您是 USB 驱动程序开发的新手,需具有 OSR USB FX2 学习套件。 此工具包最适合学习本文档集中包括的 USB 示例。

    • 配备 Microsoft USB 测试工具 (MUTT) 设备。 MUTT 硬件可从 JJG Technologies购买。 设备未安装固件。 要安装固件,请下载 MUTT 软件包。 更多信息,请参阅软件包随附的文档。

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

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

    • 根据目标设备的设计,确定驱动程序应该是自定义驱动程序还是使用微软提供的驱动程序。 选择最佳驱动程序型号,并说明每种型号支持的功能。
  5. 回顾微软提供的 USB 驱动程序栈和驱动程序开发概念。

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

  7. 写出你的第一个驱动程序。

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

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

USB 社区资源