USB 客户端驱动程序开发的首要步骤
本部分介绍 USB 驱动程序开发概念和工具。 本部分适用于希望为 Microsoft 不提供内置驱动程序的 USB 设备实现驱动程序的驱动程序开发新手。 在本文档中,这些驱动程序称为 USB 客户端驱动程序 。 本节中的主题介绍高级 USB 概念,并提供有关执行 USB 客户端驱动程序的常见任务的分步说明。 有关这些概念的详细信息,请参阅 USB 文档中的 USB 规范。
驱动程序开发人员必须具有 C++ 编程语言的编码经验,并了解 函数指针、 回调函数和 事件处理程序的概念。 如果基于 User-Mode 驱动程序框架编写驱动程序,开发人员必须熟悉 C++ 和 COM。
适用于 USB 客户端驱动程序开发人员的学习路径
阅读 USB 规范 3.2。
- 了解体系结构 (设备、主机控制器和集线器) 的行业规范和不同组件。 了解数据流模型、主机和设备如何相互通信,以及设备所需的请求格式非常重要。
获取测试 USB 设备。
具有 USB 设备及其硬件规格。 该规范描述了设备功能和受支持的供应商命令。 使用规范确定设备驱动程序的功能和相关设计决策。
如果不熟悉 USB 驱动程序开发,请拥有 OSR USB FX2 学习工具包 。 此工具包最适合学习本文档集中包括的 USB 示例。
将 Microsoft USB 测试工具 (MUTT) 设备。 可以从 JJG Technologies 购买 MUTT 硬件。 设备未安装固件。 若要安装固件,请下载 MUTT 软件包。 有关详细信息,请参阅 包中包含的文档。
-
- 通过读取配置描述符、每个支持的备用设置的接口描述符及其终结点描述符来描述设备功能。 通过使用 USBView,开发人员可以浏览所有 USB 控制器和连接到它们的 USB 设备,还可以检查设备配置。
-
- 根据目标设备的设计,确定驱动程序是自定义驱动程序还是使用 Microsoft 提供的驱动程序之一。 选择最佳驱动程序模型并描述每个模型支持的功能。
查看 Microsoft 提供的 USB 驱动程序堆栈和驱动程序开发概念。
- Windows 中的 USB 主机端驱动程序。
- 面向所有驱动程序开发人员的概念。
- 面向所有 USB 开发人员的概念。
- 设备节点和设备堆栈。
- 使用 Penny Orwick 和 Guy Smith 编写的 Windows 驱动程序基础开发驱动程序。 有关详细信息,请参阅 使用 WDF 开发驱动程序。
- USB 驱动程序示例。
- 了解驱动程序在 Windows 操作系统中的工作原理的基础知识。 了解基础知识将有助于做出适当的设计决策并简化开发过程。
- 区分用户模式和内核模式驱动程序体系结构模型。
- 了解驱动程序加载以及 Windows 如何在设备树和设备节点中组织即插即用 (PnP) 设备。 开发人员还应了解 PnP 管理器如何生成设备堆栈,以及驱动程序及其设备对象在设备堆栈中的放置位置。
准备开发和调试环境。
- (WDK) 安装最新的 Windows 驱动程序工具包。
- 安装 Microsoft Visual Studio。
- 获取用于调试的设置。
- 确保 USB 客户端驱动程序所需的标头和库 可用。
- 如果通过以太网在主机和目标计算机上编写内核模式驱动程序调试,则必须配置 1394 电缆、USB 2.0 或 3.0 调试电缆或 null 调制解调器电缆。
- 如果编写用户模式驱动程序,用户模式调试器可在 Microsoft Visual Studio 环境中使用。 开发人员应熟悉 如何附加到进程或在调试器下启动进程。
编写第一个驱动程序。
- 如何 (KMDF) 编写第一个 USB 客户端驱动程序 。
- 如何 (UMDF) 编写第一个 USB 客户端驱动程序 。
- 使用 Visual Studio 2012 附带的 USB 模板编写、生成和安装第一个 USB 客户端驱动程序。 开发人员应能够描述框架驱动程序、设备和队列对象,并了解框架如何与驱动程序通信。
通过发送 USB 控制传输请求来扩展驱动程序。
- 将标准控制请求和供应商命令发送到设备。 有关详细信息,请参阅 如何发送 USB 控制传输。
扩展驱动程序以使用 WDF USB I/O 目标对象来执行 USB 数据传输。
- 扩展驱动程序以执行 USB 客户端驱动程序的常见任务中所述的常见任务。
USB 社区资源
-
查看 Microsoft USB 团队撰写的博文。 此博客重点介绍 Windows USB 驱动程序堆栈,该堆栈适用于 Windows 电脑中的各种 USB 主控制器和 USB 集线器。 适用于 USB 客户端驱动程序开发人员和 USB 硬件设计人员的资源,方便他们了解驱动程序堆栈实现、解决常见问题以及如何使用工具来收集跟踪和日志文件。
-
由 OSR Online 管理的讨论列表,适用于内核模式驱动程序开发人员。
-
Windows 驱动程序工具包,请通过 Windows Hardware Lab Kit 确保产品可靠且与 Windows 兼容,了解 Windows 驱动程序示例。
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈