11.16.2.5 获取集线器状态
此请求返回当前的集线器状态以及自上次确认以来发生变更的状态。
| bmRequestType | bRequest | wValue | wIndex | wLength | 数据 |
|---|---|---|---|---|---|
| 10100000B | GET_STATUS | 0 | 0 | 4 | 集线器状态及变更指示符 |
数据的第一个字包含 wHubStatus(参见表 11-13)。数据的第二个字包含 wHubChange(参见表 11-14)。
如果 wValue、wIndex 或 wLength 的值与上述规定不符,则为请求错误。
如果集线器未完成配置,则其对此请求的响应是未定义的。
表 11-13. 集线器状态字段 wHubStatus
| 位 | 描述 |
|---|---|
| 0 | 本地电源状态: 此字段指示集线器电源(SIE 除外)是由外部电源提供还是由 USB 提供。此字段允许 USB 系统软件确定集线器可向下游设备提供的电量。 0 = 本地电源正常 1 = 本地电源失效(未激活) |
| 1 | 过流指示器: 如果集线器支持基于集线器整体的过流报告,此字段指示所有端口的电流总和已超过规定最大值,并且所有端口已置于断电状态。如果集线器按端口报告过流或不具备过流检测能力,则此字段始终为零。有关过流保护的更多详细信息,请参见第 7.2.1.2.1 节。 0 = 当前不存在过流情况 1 = 存在集线器过流情况 |
| 2-15 | 保留 读取时这些位返回 0。 这些状态位没有定义特性选择器值,USB 系统软件既不能设置也不能清除它们。 |
表 11-14. 集线器变更字段 wHubChange
| 位 | 描述 |
|---|---|
| 0 | 本地电源状态变更 (C_HUB_LOCAL_POWER): 此字段指示集线器 wHubStatus 中的本地电源状态字段发生了变更。 当集线器收到总线复位时,此字段初始化为零。 0 = 本地电源状态未发生变更 1 = 本地电源状态已变更 |
| 1 | 过流指示器变更 (C_HUB_OVERCURRENT): 此字段指示 wHubStatus 中的过流字段是否发生了变更。 当集线器收到总线复位时,此字段初始化为零。 0 = 过流指示器未发生变更 1 = 过流指示器已变更 |
| 2-15 | 保留 读取时这些位返回 0。 为支持诊断,集线器可以允许通过 SetHubFeature() 请求设置这些变更位。如果集线器不支持设置这些位,则应将该 SetHubFeature() 请求视为请求错误或视为功能上的无操作。当这些位被设置后,可以通过 ClearHubFeature() 请求来清除它们。设置已设置的特性或清除已清除的特性的请求无效,集线器不会因此使请求失败。 |
