Skip to content

Instantly share code, notes, and snippets.

@tmk
Last active July 15, 2021 06:39
Show Gist options
  • Save tmk/db28c9b5cb417780fd24077a729c7f2a to your computer and use it in GitHub Desktop.
Save tmk/db28c9b5cb417780fd24077a729c7f2a to your computer and use it in GitHub Desktop.
Apple Keyboard A1243 - USB Descriptor
=========================== USB Port2 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 2-3-1-2
========================== Summary =========================
Vendor ID : 0x05AC (Apple)
Product ID : 0x0250
USB Version : 2.00 -> wrong, Device is Low-Speed only
Port maximum Speed : High-Speed
Device maximum Speed : Low-Speed
Device Connection Speed : Low-Speed
Self powered : no
Demanded Current : 20 mA
Used Endpoints : 3
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Composite Device
Device Path : \\?\USB#VID_05AC&PID_0250#7&2d93c62f&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name : \Device\USBPDO-11
Device ID : USB\VID_05AC&PID_0250\7&2D93C62F&0&2
Hardware IDs : USB\VID_05AC&PID_0250&REV_0074 USB\VID_05AC&PID_0250
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0013 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\usbccgp.sys (Version: 10.0.19041.488 Date: 2020-10-22)
Driver Inf : C:\Windows\inf\usb.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : usbccgp
Enumerator : USB
Location Info : Port_#0002.Hub_#0005
Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(3)#USB(1)#USB(2), ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS03)#USB(1)#USB(2)
Container ID : {cc023e82-0b11-56a2-b7d5-9d453007e1f6}
Manufacturer Info : (Standard USB Host Controller)
Capabilities : 0x80 (SurpriseRemovalOK)
Status : 0x0180000A (DN_DRIVER_LOADED, DN_STARTED, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 2
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)
Child Device 1 : USB Input Device
Device ID : USB\VID_05AC&PID_0250&MI_00\8&3A3860B1&0&0000
Class : HIDClass
Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0012 (GUID_DEVCLASS_HIDCLASS)
Service : HidUsb
Location : 0000.0014.0000.003.001.002.000.000.000
LocationPaths : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(3)#USB(1)#USB(2)#USBMI(0) PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(3)#USB(1)#USB(2)#USB(2) ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS03)#USB(1)#USB(2)#USBMI(0) ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS03)#USB(1)#USB(2)#USB(2)
Child Device 1 : HID Keyboard Device
Device Path 1 : \\?\HID#VID_05AC&PID_0250&MI_00#9&3628792e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd (GUID_DEVINTERFACE_HID)
Device Path 2 : \\?\HID#VID_05AC&PID_0250&MI_00#9&3628792e&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} (GUID_DEVINTERFACE_KEYBOARD)
Kernel Name : \Device\000000f4
Device ID : HID\VID_05AC&PID_0250&MI_00\9&3628792E&0&0000
Class : Keyboard
Driver KeyName : {4d36e96b-e325-11ce-bfc1-08002be10318}\0002 (GUID_DEVCLASS_KEYBOARD)
Service : kbdhid
Child Device 2 : USB Input Device
Device ID : USB\VID_05AC&PID_0250&MI_01\8&3A3860B1&0&0001
Class : HIDClass
Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0013 (GUID_DEVCLASS_HIDCLASS)
Service : HidUsb
Location : 0000.0014.0000.003.001.002.000.000.000
LocationPaths : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(3)#USB(1)#USB(2)#USBMI(1) ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS03)#USB(1)#USB(2)#USBMI(1)
Child Device 1 : HID-compliant consumer control device
Device Path : \\?\HID#VID_05AC&PID_0250&MI_01#9&12513b6c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
Kernel Name : \Device\000000f5
Device ID : HID\VID_05AC&PID_0250&MI_01\9&12513B6C&0&0000
Class : HIDClass
Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0014 (GUID_DEVCLASS_HIDCLASS)
+++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\05AC02500074
osvc : REG_BINARY 00 00
NewInterfaceUsage : REG_DWORD 00000000 (0)
---------------- Connection Information ---------------
Connection Index : 0x02 (Port 2)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x10 (16)
Is Hub : 0x00 (no)
Device Bus Speed : 0x00 (Low-Speed)
Number Of Open Pipes : 0x02 (2 pipes to data endpoints)
Pipe[0] : EndpointID=1 Direction=IN ScheduleOffset=0 Type=Interrupt
Pipe[1] : EndpointID=2 Direction=IN ScheduleOffset=0 Type=Interrupt
Data (HexDump) : 02 00 00 00 12 01 00 02 00 00 00 08 AC 05 50 02 ..............P.
74 00 01 02 00 01 01 00 00 10 00 02 00 00 00 01 t...............
00 00 00 07 05 81 03 08 00 0A 00 00 00 00 07 05 ................
82 03 01 00 0A 00 00 00 00 .........
--------------- Connection Information V2 -------------
Connection Index : 0x02 (2)
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)
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) : 02 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) -> wrong, device is Low-Speed only
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x08 (8 bytes)
idVendor : 0x05AC (Apple)
idProduct : 0x0250
bcdDevice : 0x0074
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : "Apple Inc."
iProduct : 0x02 (String Descriptor 2)
Language 0x0409 : "Apple Keyboard"
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x01 (1 Configuration)
Data (HexDump) : 12 01 00 02 00 00 00 08 AC 05 50 02 74 00 01 02 ..........P.t...
00 01 ..
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x003B (59 bytes)
bNumInterfaces : 0x02 (2 Interfaces)
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 : 0x0A (20 mA)
Data (HexDump) : 09 02 3B 00 02 01 00 A0 0A 09 04 00 00 01 03 01 ..;.............
01 00 09 21 11 01 0D 01 22 4B 00 07 05 81 03 08 ...!...."K......
00 0A 09 04 01 00 01 03 00 00 00 09 21 11 01 00 ............!...
01 22 2F 00 07 05 82 03 01 00 0A ."/........
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x03 (HID - Human Interface Device)
bInterfaceSubClass : 0x01 (Boot Interface)
bInterfaceProtocol : 0x01 (Keyboard)
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 01 03 01 01 00 .........
------------------- HID Descriptor --------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (HID Descriptor)
bcdHID : 0x0111 (HID Version 1.11)
bCountryCode : 0x0D (13 = International (ISO))
bNumDescriptors : 0x01
Data (HexDump) : 09 21 11 01 0D 01 22 4B 00 .!...."K.
Descriptor 1:
bDescriptorType : 0x22 (Class=Report)
wDescriptorLength : 0x004B (75 bytes)
Error reading descriptor : ERROR_INVALID_PARAMETER (due to a obscure limitation of the Win32 USB API, see UsbTreeView.txt)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0008
bInterval : 0x0A (10 ms)
Data (HexDump) : 07 05 81 03 08 00 0A .......
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x03 (HID - Human Interface Device)
bInterfaceSubClass : 0x00 (None)
bInterfaceProtocol : 0x00 (None)
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 01 00 01 03 00 00 00 .........
------------------- HID Descriptor --------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (HID Descriptor)
bcdHID : 0x0111 (HID Version 1.11)
bCountryCode : 0x00 (00 = not localized)
bNumDescriptors : 0x01
Data (HexDump) : 09 21 11 01 00 01 22 2F 00 .!...."/.
Descriptor 1:
bDescriptorType : 0x22 (Class=Report)
wDescriptorLength : 0x002F (47 bytes)
Error reading descriptor : ERROR_INVALID_PARAMETER (due to a obscure limitation of the Win32 USB API, see UsbTreeView.txt)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0001
bInterval : 0x0A (10 ms)
Data (HexDump) : 07 05 82 03 01 00 0A .......
----------------- Device Qualifier Descriptor -----------------
Error : ERROR_GEN_FAILURE (*!*ERROR USB 2.0 devices must provide a Device Qualifier Descriptor)
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English - United States)
Data (HexDump) : 04 03 09 04 ....
------ String Descriptor 1 ------
bLength : 0x16 (22 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Apple Inc."
Data (HexDump) : 16 03 41 00 70 00 70 00 6C 00 65 00 20 00 49 00 ..A.p.p.l.e. .I.
6E 00 63 00 2E 00 n.c...
------ String Descriptor 2 ------
bLength : 0x1E (30 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Apple Keyboard"
Data (HexDump) : 1E 03 41 00 70 00 70 00 6C 00 65 00 20 00 4B 00 ..A.p.p.l.e. .K.
65 00 79 00 62 00 6F 00 61 00 72 00 64 00 e.y.b.o.a.r.d.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment