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() 请求来清除它们。设置已设置的特性或清除已清除的特性的请求无效,集线器不会因此使请求失败。