USB 的特定于设备的方法 (_DSM)

为了支持 USB 子系统的设备类特定配置,Windows 定义了一个具有本文中所述功能的 Device-Specific 方法(_DSM)。

每个_DSM的函数索引 0 是一个查询函数,它返回支持的函数索引集,并且始终是必需的。 有关详细信息,请参阅 ACPI 5.0 规范中的“_DSM(设备特定方法)”第 9.14.1 节。

函数 1:双角色控制器的重置后处理

使用此函数时,_DSM方法必须显示在 USB 控制器设备下。

用于双角色 USB 控制器重置后处理功能的 _DSM 控制方法参数如下所示:

参数(函数 1)

  • Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
  • Arg1:修订 ID = 0
  • Arg2:函数索引 = 1
  • Arg3:空包(未使用)

返回 (函数 1)

没有

Windows 收件箱驱动程序仅支持主机模式下的 USB 控制器。 每个控制器重置后,USB 驱动程序将调用_DSM函数索引 1,以执行配置 USB 控制器以在主机模式下运行所需的任何特定于控制器的初始化。

函数 2:端口类型标识

使用此函数时,_DSM方法必须显示在 USB 端口设备下。

用于标识 USB 端口类型的_DSM控制方法参数如下所示:

参数(函数 2)

  • Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
  • Arg1:修订 ID = 0
  • Arg2:函数索引 = 2
  • Arg3:空包(未使用)

返回 (函数 2)

包含以下值之一的整数:

元素 对象类型 描述
端口类型 整数(BYTE) 指定 USB 端口的类型:

0x00 – 常规 USB

0x01 – HSIC

0x02 – SSIC

0x03 – 0xff 保留

函数 5:禁用端口的 U1 和 U2 转换

当此_DSM方法返回0x01时,USB总线驱动程序会禁用端口的U1和U2切换。 如果返回 0x00,USB 总线驱动程序将返回 U1 和 U2 转换中所述的 U1 和 U2 转换默认启发式方法。

_DSM方法必须显示在 USB3 端口下。 它从 Windows 10 版本 2004 (Vibranium) 开始提供。

_DSM控件方法参数如下所示:

参数(函数 5)

  • Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
  • Arg1:修订 ID = 0
  • Arg2:函数索引 = 5
  • Arg3:空包(未使用)

返回 (函数 5)

包含以下值之一的整数:

元素 对象类型 描述
禁用 U1 和 U2? 整数(BYTE) 指定 U1 和 U2 特性:

0x00 – USB 总线驱动程序将恢复到 U1 和 U2 的默认策略。

0x01 – U1 和 U2 转换将被禁用。

0x02 – 0xff 保留

函数 6:查询控制器寄存器访问类型

从 Windows Server 2022 和 Windows 11 开始,此函数可用。

使用此函数时,_DSM方法必须显示在 USB 控制器设备下。

用于查询注册访问类型以与 USB 控制器通信的_DSM控制方法参数如下所示:

参数(函数 6)

  • Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
  • Arg1:修订 ID = 0
  • Arg2:函数索引 = 6
  • Arg3:空包(未使用)

返回 (函数 6)

包含以下值之一的整数:

元素 对象类型 描述
RegisterAccessType 4 字节(32 位)无符号长整型 指定 USB 控制器寄存器访问类型:

0x00 - 未定义的寄存器访问

0x01 - 必须使用 32 位寄存器访问

0x02 – 0xffffffff 保留

函数 7:查询_UPC是否支持 ACPI 规范 6.5 中定义的 USB-C 端口功能。

ACPI 规范 6.5 更新了 _UPC 以包含 USB-C 端口功能。 在 ACPI 规范版本低于 6.5 的系统上,此_DSM 方法函数可用于指示 USB 集线器的 USB 端口的_UPC 方法具有 ACPI 规范 6.5 中定义的 USB-C 端口功能。

使用此函数时,_DSM 方法必须出现在 USB 集线器下。

_DSM控件方法参数如下所示:

参数(函数 7)

  • Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
  • Arg1:修订 ID = 0
  • Arg2:函数索引 = 7
  • Arg3:空包(未使用)

返回 (函数 7)

整数,如下所示:

元素 对象类型 描述
Upc支持UsbC端口功能 整数(BYTE) 0x00:此 USB 集线器的 USB 端口的 _UPC 方法没有符合 ACPI 规范 6.5 中定义的 USB-C 端口功能。

0x01:此 USB 中心的 USB 端口的 _UPC 方法具有 ACPI 规范 6.5 中定义的 USB-C 端口功能。

0x02 - 0xFF: 保留。 请勿使用