Skip to content

Instantly share code, notes, and snippets.

@tmk
Created July 15, 2021 06:51
Show Gist options
  • Save tmk/88dd53305e788937fc78fecc7870c470 to your computer and use it in GitHub Desktop.
Save tmk/88dd53305e788937fc78fecc7870c470 to your computer and use it in GitHub Desktop.
USB Hub of Apple Keyboard A1243 - USB Descriptor
=========================== USB Port1 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 2-5-1
Properties : 0x01
IsUserConnectable : yes
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x01 (Port 1)
CompanionIndex : 0
CompanionHubSymLnk : USB#VID_2109&PID_0211#8&6b2ae89&0&4#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
CompanionPortNumber : 0x01 (Port 1)
-> CompanionPortChain : 1-4-1
========================== Summary =========================
Vendor ID : 0x05AC (Apple)
Product ID : 0x1006
USB Version : 2.00
Port maximum Speed : High-Speed (Companion Port 1-4-1 supports SuperSpeed)
Device maximum Speed : High-Speed
Device Connection Speed : High-Speed
Self powered : no
Demanded Current : 300 mA
Used Endpoints : 2
========================== USB Hub =========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : Generic USB Hub
Device Path : \\?\USB#VID_05AC&PID_1006#MSFT20000000000000#{f18a0e88-c30c-11d0-8815-00a0c906bed8} (GUID_DEVINTERFACE_USB_HUB)
Kernel Name : \Device\USBPDO-8
Device ID : USB\VID_05AC&PID_1006\MSFT20000000000000
Hardware IDs : USB\VID_05AC&PID_1006&REV_9615 USB\VID_05AC&PID_1006
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0012 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\UsbHub3.sys (Version: 10.0.19041.964 Date: 2021-05-13)
Driver Inf : C:\Windows\inf\usbhub3.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : USBHUB3
Enumerator : USB
Location Info : Port_#0001.Hub_#0004
Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(5)#USB(1), ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS05)#USB(1)
Container ID : {cc023e82-0b11-56a2-b7d5-9d453007e1f6}
Manufacturer Info : (Standard USB HUBs)
Capabilities : 0x94 (Removable, UniqueID, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 1
HcDisableSelectiveSuspend: 0
EnableSelectiveSuspend : 0
SelectiveSuspendEnabled : 0
EnhancedPowerMgmtEnabled : 0
IdleInWorkingState : 0
WakeFromSleepState : 0
Power State : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)
+++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\05AC10069615
osvc : REG_BINARY 00 00
NewInterfaceUsage : REG_DWORD 00000000 (0)
------------------- USB Hub Descriptor -----------------
bDescriptorLength : 0x09 (9 bytes)
bDescriptorType : 0x29 (Hub Descriptor)
bNumberOfPorts : 0x03 (3 Ports)
wHubCharacteristics : 0x008D
Power switching : Individual
Compound device : Yes
Over-current protection : Individual
TT Think Time : At most 8 FS bit times
Port Indicators : Supported
bPowerOnToPowerGood : 0x32 (100 ms)
bHubControlCurrent : 0xC8 (200 mA)
DeviceRemovable : 0x04
Bit 0 : 0 (reserved, any value)
Bit 1 : 0 (Device at Port 1 is removable)
Bit 2 : 1 (Device at Port 2 is non-removable)
Bit 3 : 0 (Device at Port 3 is removable)
Bit 4 : 0 (unused, must be 0)
Bit 5 : 0 (unused, must be 0)
Bit 6 : 0 (unused, must be 0)
Bit 7 : 0 (unused, must be 0)
PowerControlMask : 0xFF
Data (HexDump) : 09 29 03 8D 00 32 C8 04 FF .)...2...
HubIsBusPowered : 0x01 (Bus Powered)
---------------- Extended USB Hub Descriptor ---------------
HubType : 0x02 (Usb20Hub - hub descriptor is defined in USB 2.0 and 1.1 specifications)
HighestPortNumber : 0x03 (3 Ports)
UsbHubDescriptor : identical with "USB Hub Descriptor" shown above
Data (HexDump) : 09 29 03 8D 00 32 C8 04 FF .)...2...
----------------- USB Hub Capabilities ----------------
HubIs2xCapable : 1 (Is 2.x capable)
Data (HexDump) : 01 00 00 00 ....
--------------- USB Hub Capabilities Ex ---------------
HighSpeedCapable : 1 (Yes)
HighSpeed : 1 (Yes)
MultiTtCapable : 0 (No)
HubIsMultiTt : 0 (No)
ArmedWakeOnConnect : 0 (No)
IsBusPowered : 0 (No)
IsRoot : 0 (No)
Data (HexDump) : 03 00 00 00 ....
---------------- Connection Information ---------------
Connection Index : 0x01 (Port 1)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x10 (16)
Is Hub : 0x01 (yes)
Device Bus Speed : 0x02 (High-Speed)
Number Of Open Pipes : 0x01 (1 pipe to data endpoints)
Pipe[0] : EndpointID=1 Direction=IN ScheduleOffset=0 Type=Interrupt
Data (HexDump) : 01 00 00 00 12 01 00 02 09 00 01 40 AC 05 06 10 ...........@....
15 96 01 02 03 01 01 02 01 10 00 01 00 00 00 01 ................
00 00 00 07 05 81 03 01 00 0C 00 00 00 00 ..............
--------------- Connection Information V2 -------------
Connection Index : 0x01 (1)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0) -> but Companion Port 1-4-1 does
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
Data (HexDump) : 01 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 ................
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0x09 (Hub)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x01 (Hi-speed hub with single TT)
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x05AC (Apple)
idProduct : 0x1006
bcdDevice : 0x9615
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : "Apple, Inc."
Language 0x0404 : "柏士半導體股份有限公司"
iProduct : 0x02 (String Descriptor 2)
Language 0x0409 : "Keyboard Hub"
Language 0x0404 : "单一傳輸轉譯集线器"
iSerialNumber : 0x03 (String Descriptor 3)
Language 0x0409 : "000000000000"
Language 0x0404 : "000000000000"
bNumConfigurations : 0x01 (1 Configuration)
Data (HexDump) : 12 01 00 02 09 00 01 40 AC 05 06 10 15 96 01 02 .......@........
03 01 ..
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0019 (25 bytes)
bNumInterfaces : 0x01 (1 Interface)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xA0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x01 (yes)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x96 (300 mA)
Data (HexDump) : 09 02 19 00 01 01 00 A0 96 09 04 00 00 01 09 00 ................
00 00 07 05 81 03 01 00 0C .........
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x09 (Hub)
bInterfaceSubClass : 0x00
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 01 09 00 00 00 .........
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0001
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x01 (1 byte per packet)
bInterval : 0x0C (12 ms)
Data (HexDump) : 07 05 81 03 01 00 0C .......
----------------- Device Qualifier Descriptor -----------------
bLength : (USB Version 2.00)
bDeviceClass : 0x090x0A (10 bytes)
bDescriptorType : 0x06 (Device_qualifier Descriptor)
bcdUSB : 0x200 (Hub)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00 (Hi-speed hub without TT)
bMaxPacketSize0 : 0x40 (64 Bytes)
bNumConfigurations : 0x01 (1 other-speed configuration)
bReserved : 0x00
Data (HexDump) : 0A 06 00 02 09 00 00 40 01 00 .......@..
------------ Other Speed Configuration Descriptor -------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x07 (Other_speed_configuration Descriptor)
wTotalLength : 0x0019 (25 bytes)
bNumInterfaces : 0x01 (1 Interface)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xA0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x01 (yes)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x28 (80 mA)
Data (HexDump) : 09 07 19 00 01 01 00 A0 28 09 04 00 00 01 09 00 ........(.......
00 00 07 05 81 03 01 00 FF .........
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x09 (Hub)
bInterfaceSubClass : 0x00
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 01 09 00 00 00 .........
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0001
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x01 (1 byte per packet)
bInterval : 0xFF (255 ms)
Data (HexDump) : 07 05 81 03 01 00 FF .......
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English - United States)
Language ID[1] : 0x0404 (Chinese - Taiwan)
Data (HexDump) : 06 03 09 04 04 04 ......
------ String Descriptor 1 ------
bLength : 0x18 (24 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Apple, Inc."
Data (HexDump) : 18 03 41 00 70 00 70 00 6C 00 65 00 2C 00 20 00 ..A.p.p.l.e.,. .
49 00 6E 00 63 00 2E 00 I.n.c...
bLength : 0x1A (26 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0404 : "柏士半導體股份有限公司"
Data (HexDump) : 1A 03 FF FE CF 67 EB 58 4A 53 0E 5C D4 9A A1 80 .....g.XJS.\....
FD 4E 09 67 50 96 6C 51 F8 53 .N.gP.lQ.S
------ String Descriptor 2 ------
bLength : 0x1A (26 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Keyboard Hub"
Data (HexDump) : 1A 03 4B 00 65 00 79 00 62 00 6F 00 61 00 72 00 ..K.e.y.b.o.a.r.
64 00 20 00 48 00 75 00 62 00 d. .H.u.b.
bLength : 0x14 (20 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0404 : "单一傳輸轉譯集线器"
Data (HexDump) : 14 03 55 53 00 4E B3 50 38 8F 49 8F 6F 8B C6 96 ..US.N.P8.I.o...
BF 7E 68 56 .~hV
------ String Descriptor 3 ------
bLength : 0x1A (26 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "000000000000"
Data (HexDump) : 1A 03 30 00 30 00 30 00 30 00 30 00 30 00 30 00 ..0.0.0.0.0.0.0.
30 00 30 00 30 00 30 00 30 00 0.0.0.0.0.
bLength : 0x1A (26 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0404 : "000000000000"
Data (HexDump) : 1A 03 30 00 30 00 30 00 30 00 30 00 30 00 30 00 ..0.0.0.0.0.0.0.
30 00 30 00 30 00 30 00 30 00 0.0.0.0.0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment