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 Technologies 购买 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 社区资源