USBCCGP 功能简介
许多 USB 设备提供了多个 USB 接口。在 USB 术语中,此类设备被称为USB复合设备。
Microsoft Windows 2000 和 Windows 98 操作系统的 USB 总线驱动程序 (Usbhub.sys) 中包含有一个通用父设备,它将复合设备的各接口显示为一台单独的设备。
在 Microsoft Windows XP 和 Windows Me 中,此设备将其传送到被称为 USB 通用父驱动程序 (Usbccgp.sys) 的一个独立驱动程序,从而简化并改进了该设备。利用通用父驱动程序的上述特点,设备供应商可为某些接口选择使用 Microsoft 提供的驱动程序支持。
有些复合设备的接口独立运行。例如,一个带有电源按钮的复合 USB 键盘可能会有一个键盘接口和一个电源按钮接口。USB 通用父驱动程序将各接口枚举为独立的设备。操作系统载入 Microsoft 提供的用于键盘接口管理的键盘驱动程序,以及 Microsoft 提供的用于电源键接口管理的电源键驱动程序,即每个单独功能的接口口实现各自单独的功能,在WINDOWS管理器中,表示分不同的设备。
如果复合设备带有不受 Windows 本机驱动程序支持的接口,则该设备的供应商应提供此类接口的驱动程序和 INF 文件。INF 文件应具有一个与接口设备 ID 匹配的 INF DDInstall 部分。INF 文件一定不能与复合设备本身的设备 ID 相匹配,因为这样可防止通用父驱动程序载入。
有些设备将各种接口分组为不同的接口集合,它们协作执行某一特定函数。当按照接口集合对接口进行分组时,通用父驱动程序将各集合(而非各接口)视为一种设备。
如UVC摄像头
在操作系统为复合设备的接口载入客户端驱动程序后,通用父驱动程序对来自客户端驱动程序的数据流执行多路复用,从而将这些单独的交互合并为复合设备的单一数据流。通用父驱动程序是整个复合设备及其所有接口的电源策略所有者。它还管理同步和 PnP 请求。
如果 Microsoft 提供的驱动程序支持某些接口但不支持其他接口,则通用父驱动程序可简化复合硬件供应商的任务。由于通用父驱动程序便于将 Microsoft 提供的驱动程序用于所支持的接口,因此此类设备的供应商仅需为不受支持的接口提供驱动程序。