选择 USB 驱动程序中的 USB 配置的概述
本节中的主题介绍了客户端驱动程序如何配置其设备。
USB 设备以一系列称为 USB 配置的接口的形式公开其功能。 每个接口由一个或多个备用设置组成,每个备用设置由一组终结点组成。 设备必须至少提供一个配置,但它可以提供多个配置,这些配置是设备可以执行的操作的互斥定义。 有关配置描述符的详细信息,请参阅 USB 配置描述符。
设备配置指的是客户端驱动程序执行的任务,用于选择 USB 配置和每个接口中的备用接口。 在向设备发送 I/O 请求之前,客户端驱动程序必须读取设备的配置、分析信息并选择适当的配置。 客户端驱动程序必须至少选择一个受支持的配置才能使设备正常工作。
基于 WDM 的客户端驱动程序可以选择 USB 设备中的任何配置。
如果客户端驱动程序基于 内核模式驱动程序框架 或 用户模式驱动程序框架,则应使用相应的框架接口来配置 USB 设备。 如果使用随 visual Studio Professional 2012 Microsoft提供的 USB 模板,模板代码会选择每个接口中的第一个配置和默认备用设置。
本节内容
主题 | 说明 |
---|---|
如何为 USB 设备选择配置 | 本主题介绍如何在通用串行总线(USB)设备中选择配置。 |
如何在 USB 接口中选择备用设置 | 本主题介绍发出选择接口请求以激活 USB 接口中的备用设置的步骤。 选择 USB 配置后,客户端驱动程序必须发出此请求。 默认情况下,选择配置也会激活该配置中的每个接口中的第一个备用设置。 |
配置 Usbccgp.sys,选择非默认 USB 配置 | 本主题提供有关注册表设置的信息,这些设置配置Usbccgp.sys选择 USB 配置的方式。 本主题还介绍了Usbccgp.sys如何处理由控制复合设备功能之一的客户端驱动程序发送的选择配置请求。 |
有关需要固件下载的设备配置的特殊注意事项的信息,请参阅 “配置需要固件下载的 USB 设备”。
选择配置的限制
如果客户端驱动程序使用 WDF 对象,或者设备是否具有单个接口或多个接口,则应用某些限制。 在更改默认配置之前,请考虑以下限制:
- 通过 USB 通用父驱动程序(Usbccgp.sys)管理接口或接口集合的复合设备的客户端驱动程序 无法更改设备的配置值。 但是,客户端驱动程序可以将Usbccgp.sys配置为选择第一个(默认)配置以外的配置。 有关详细信息,请参阅 配置Usbccgp.sys以选择非默认 USB 配置。
- 使用框架的 USB I/O 目标的基于 KMDF 的客户端驱动程序只能选择第一个配置。
- WinUSB 仅支持第一个配置。
- 类驱动程序经常缺乏对多个配置的支持。 如果设备实现由 USB 类规范定义的类,请参阅 USB 技术 网站,了解有关设备类和类规范的信息。 Microsoft为支持的 USB 设备类提供类驱动程序。 有关详细信息,请参阅支持的 USB 设备类的驱动程序。