本部分介绍 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 技术购买 MUTT 硬件。 设备未安装固件。 若要安装固件,请下载 MUTT 软件包。 有关详细信息,请参阅包中包含的文档。
-
- 通过读取配置描述符、每个支持的备用设置的接口描述符及其终结点描述符来描述设备功能。 通过使用 USBView,开发人员可以浏览所有 USB 控制器和连接到它们的 USB 设备,并检查设备配置。
-
- 根据目标设备的设计,确定驱动程序是否应为自定义驱动程序或使用Microsoft提供的驱动程序之一。 选择最佳驱动程序模型并描述每个模型支持的功能。
查看Microsoft提供的 USB 驱动程序堆栈和驱动程序开发概念。
- Windows 中的 USB 主机端驱动程序。
- 面向所有驱动程序开发人员的概念。
- USB开发人员通用概念
- 设备节点和设备堆栈。
- 使用 Windows 驱动程序基金会开发驱动程序: 佩妮·奥里克和盖伊·史密斯的参考书。
- USB 驱动程序示例。
- 了解驱动程序在 Windows作系统中工作原理的基础知识。 了解基础知识将有助于做出适当的设计决策并简化开发过程。
- 区分用户模式和内核模式驱动程序体系结构模型。
- 了解驱动程序加载以及 Windows 如何在设备树和设备节点中组织即插即用(PnP)设备。 开发人员还应了解 PnP 管理器如何生成设备堆栈,以及驱动程序及其设备对象放置在设备堆栈中的位置。
准备开发和调试环境。
- 安装最新的 Windows 驱动程序工具包(WDK)。
- 安装 Microsoft Visual Studio。
- 准备进行调试。
- 确保 USB 客户端驱动程序所需的标头和库 可用。
- 如果通过以太网网络在主机和目标计算机上编写内核模式驱动程序调试,则必须配置 1394 电缆、USB 2.0 或 3.0 调试电缆,或配置 null 调制解调器电缆。
- 如果编写用户模式驱动程序,则用户模式调试器可在 Microsoft Visual Studio 环境中使用。 开发人员应熟悉 如何附加到进程或在调试器下启动进程。
编写第一个驱动程序。
- 如何编写第一个 USB 客户端驱动程序(KMDF)。
- 如何编写第一个 USB 客户端驱动程序(UMDF)。
- 使用 Visual Studio 2012 随附的 USB 模板编写、生成和安装第一个 USB 客户端驱动程序。 开发人员应能够描述框架驱动程序、设备和队列对象,并了解框架如何与驱动程序通信。
通过发送 USB 控制传输请求来扩展驱动程序。
- 将标准控制请求和供应商命令发送到设备。 有关详细信息,请参阅 如何发送 USB 控制传输。
扩展驱动程序以使用 WDF USB I/O 目标对象执行 USB 数据传输。
- 扩展驱动程序以按照 USB 客户端驱动程序的常见任务中所述执行常见任务。
USB 社区资源
Microsoft Windows USB Core 团队博客
查看由 Microsoft USB 团队撰写的帖子。 博客重点介绍适用于 Windows 电脑中各种 USB 主机控制器和 USB 中心的 Windows USB 驱动程序堆栈。 适用于 USB 客户端驱动程序开发人员和 USB 硬件设计器的有用资源,可了解驱动程序堆栈实现、解决常见问题,以及如何使用工具来收集跟踪和日志文件。
-
OSR Online 为内核模式驱动程序开发人员管理的讨论列表。
-
Windows 驱动程序工具包,确保你的产品通过 Windows 硬件实验室工具包与 Windows 可靠兼容,了解 Windows 驱动程序示例。
相关主题
- 通用串行总线(USB)驱动程序
- 如何在 USB 设备的 UMDF 框架驱动程序中启用 USB 选择性暂停和系统唤醒
- USB 驱动程序开发指南