USB 的特定于设备的方法 (_DSM)
为了支持 USB 子系统的特定设备类配置,Windows 定义了一种具有本文所述功能的特定设备方法 (_DSM)。
函数 1:双角色控制器的重置后处理
用于双角色 USB 控制器重置后处理功能的 _DSM 控制方法参数如下所示:
参数(函数 1)
- Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
- Arg1:修订 ID = 0
- Arg2:函数索引 = 1
- Arg3:空包(未使用)
返回(函数 1)
无
Windows 收件箱驱动程序仅支持主机模式下的 USB 控制器。 每次控制器重置后,USB 驱动程序都会调用 _DSM 函数索引 1,执行配置 USB 控制器以主机模式运行所需的控制器特定初始化。
使用此函数时,_DSM 方法必须出现在 USB 控制器设备下。
函数 2:端口类型标识
用于标识 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 保留 |
使用此函数时,_DSM 方法必须出现在 USB 端口设备下。
函数 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 开始可用。
用于查询与 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 保留 |
使用此函数时,_DSM 方法必须出现在 USB 控制器设备下。
每个 _DSM 的函数索引 0 都是一个返回支持的函数索引集的查询函数,始终是必需的。 有关详细信息,请参阅 ACPI 5.0 规范中的第 9.14.1 节“ _DSM(特定于设备的方法)”。