USB2.0集线器类请求GetHubStatus
2023-04-13
本文链接为:http://www.usbzh.com/article/detail-1163.html ,欢迎转载,转载请附上本文链接。
GetHubStatus属于类请求。
GetHubStatus用于获取当前集线器的状态以及对上一次状态更改的确认。
| bmRequestType | bRequest | wValue | wIndex | wLength | Data |
|---|---|---|---|---|---|
| 0xA0 | GET_STATUS | 0 | 0 | 4 | Hub Status and Change Status |
GetHubStatus的数据固定为4个字节:
wHubStatus
wHubStatus虽占16位,但只有低2位有效
//
// USB 1.1: 11.16.2.5 Get Hub Status, Table 11-13. Hub Status Field, wHubStatus
// USB 2.0: 11.24.2.6 Get Hub Status, Table 11-19. Hub Status Field, wHubStatus
// USB 3.0, 10.14.2.4 Get Hub Status, Table 10-8. Hub Status Field, wHubStatus
//
typedef union _USB_HUB_STATUS {
USHORT AsUshort16;
struct {
USHORT LocalPowerLost:1;
USHORT OverCurrent:1;
USHORT Reserved:14;
};
} USB_HUB_STATUS, *PUSB_HUB_STATUS;
- LocalPowerLost
- 0 = Local power supply good:有本地电源(自供电),外部适配器供电,不是总线供电。
- 1 = Local power supply lost (inactive):无本地电源,靠 USB 总线供电。
- OverCurrent:
- 0 = 当前无全局过流状态
- 1 = 存在 Hub 全局过流状态
wHubChange
typedef union _USB_HUB_STATUS_AND_CHANGE {
ULONG AsUlong32;
struct {
USB_HUB_STATUS HubStatus; // 0-15
USB_HUB_CHANGE HubChange; // 16-32
};
} USB_HUB_STATUS_AND_CHANGE, *PUSB_HUB_STATUS_AND_CHANGE;
- BIT0:Local Power Status Change((C_HUB_LOCAL_POWER)
- BIT1:Over-Current Change: (C_HUB_OVER_CURRENT)
- BIT2-15:保留,值为0
抓包

typedef union _USB_HUB_STATUS_AND_CHANGE {
ULONG AsUlong32;
struct {
USB_HUB_STATUS HubStatus; // 0-15
USB_HUB_CHANGE HubChange; // 16-32
};
} USB_HUB_STATUS_AND_CHANGE, *PUSB_HUB_STATUS_AND_CHANGE;
本文链接为:http://www.usbzh.com/article/detail-1163.html ,欢迎转载,转载请附上本文链接。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936 USB技术交流3:1031974172
USB2.0集线器HUB





