使用 Microsoft OS ContainerID 描述符

Microsoft 操作系统 (OS) ContainerID 描述符可用于支持通过多个系统总线同时连接设备的设备中。 显式定义的 Microsoft OS ContainerID 描述符可确保 USB 总线上为设备枚举的所有设备节点 (devnodes) 都被归入同一个设备容器。

注意 如果决定实现 Microsoft OS ContainerID 描述符,则描述符值在每个设备上都必须是唯一的,以避免容器 ID 冲突。

Microsoft OS ContainerID 描述符在设备支持通过多条总线同时连接到设备时非常有用。 这样,设备支持的每条总线上都会使用相同的容器 ID。 这样,操作系统就可以确定每个总线上的函数是否属于同一个设备容器。

如果决定在 USB 设备中使用 Microsoft OS ContainerID,则应注意以下几点:

  • 对于未集成到计算机中的设备(即所有外部设备),最佳做法是始终在 USB 设备硬件中提供 Microsoft OS ContainerID 描述符和序列号。 这将确保 Windows 即插即用 (PnP) 基础结构能够正确分组设备所公开的所有设备功能。 从 Windows 7 开始,操作系统的组件依赖于设备功能的正确分组。 遵循这种做法将为 Windows 平台上的设备提供最佳的用户体验。

  • 与计算机集成的 USB 设备绝不应提供 Microsoft OS ContainerID 描述符。 为确保集成设备与计算机的设备容器正确分组,集成设备应依赖 ACPI BIOS 设置或端口的 USB 集线器描述符 DeviceRemovable 位。