选择 USB 驱动程序中的 USB 配置的概述

本部分中的主题介绍了客户端驱动程序必须如何配置其设备。

USB 设备以一系列称为 USB 配置的接口的形式公开其功能。 每个接口由一个或多个备用设置组成,每个备用设置由一组终结点组成。 设备必须至少提供一个配置,但它可以提供多个配置,这些配置是设备可以执行的操作的互斥定义。 有关配置描述符的详细信息,请参阅 USB 配置描述符

设备配置指的是客户端驱动程序执行的任务,用于选择 USB 配置和每个接口中的备用接口。 在向设备发送 I/O 请求之前,客户端驱动程序必须读取设备的配置、分析信息并选择合适的配置。 客户端驱动程序必须至少选择一个受支持的配置才能使设备正常工作。

基于 WDM 的客户端驱动程序可以选择 USB 设备中的任何配置。

如果客户端驱动程序基于 内核模式驱动程序框架用户模式驱动程序框架,则应使用相应的框架接口来配置 USB 设备。 如果使用随 Microsoft Visual Studio Professional 2012 提供的 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 设备类的驱动程序