[wdmaudiodev] Re: USB Audio Class 2 driver and MIDI

  • From: Franz Detro <franz.detro@xxxxxxxxxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 19 Dec 2017 09:13:34 +0100

[Port3]  :  USB Composite Device


Is Port User Connectable:         yes
Is Port Debug Capable:            no
Companion Port Number:            1
Companion Hub Symbolic Link Name: 
USB#ROOT_HUB30#5&2dcc0ca9&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
 USB 1.1:                         yes
 USB 2.0:                         yes
 USB 3.0:                         no

Device Power State:               PowerDeviceD0

       ---===>Device Information<===---
English product name: "Traktor Kontrol S4 MK2"

ConnectionStatus:                  
Current Config Value:              0x01  -> Device Bus Speed: High (is not 
SuperSpeed or higher capable)
Device Address:                    0x01
Open Pipes:                           7

          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0xEF  -> This is a Multi-interface Function 
Code Device
bDeviceSubClass:                   0x02  -> This is the Common Class Sub Class
bDeviceProtocol:                   0x01  -> This is the Interface Association 
Descriptor protocol
bMaxPacketSize0:                   0x40 = (64) Bytes
idVendor:                        0x17CC = Native Instruments Software Synthesis 
GmbH
idProduct:                       0x1310
bcdDevice:                       0x0046
iManufacturer:                     0x0C
     English (United States)  "Native Instruments"
iProduct:                          0x07
     English (United States)  "Traktor Kontrol S4 MK2"
iSerialNumber:                     0x0D
     English (United States)  "5F2EE6D7"
bNumConfigurations:                0x01

          ---===>Open Pipes<===---

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x84  -> Direction: IN - EndpointID: 4
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 1 transactions per microframe, 0x40 
max bytes
bInterval:                         0x01

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x03  -> Direction: OUT - EndpointID: 3
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 1 transactions per microframe, 0x40 
max bytes
bInterval:                         0x05

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x04  -> Direction: OUT - EndpointID: 4
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x85  -> Direction: IN - EndpointID: 5
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x86  -> Direction: IN - EndpointID: 6
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 1 transactions per microframe, 0x40 
max bytes
bInterval:                         0x06

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x83  -> Direction: IN - EndpointID: 3
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x02  -> Direction: OUT - EndpointID: 2
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

       ---===>Full Configuration Descriptor<===---

          ===>Configuration Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x02
wTotalLength:                    0x01AA  -> Validated
bNumInterfaces:                    0x07
bConfigurationValue:               0x01
iConfiguration:                    0x00
bmAttributes:                      0x80  -> Bus Powered
MaxPower:                          0xF0 = 480 mA

          ===>IAD Descriptor<===
bLength:                           0x08
bDescriptorType:                   0x0B
bFirstInterface:                   0x00
bInterfaceCount:                   0x04
bFunctionClass:                    0x01  -> Audio Interface Class
bFunctionSubClass:                 0x00
*!*CAUTION:    This appears to be an invalid bFunctionSubClass
bFunctionProtocol:                 0x20
iFunction:                         0x00

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x01  -> Audio Control Interface SubClass
bInterfaceProtocol:                0x20
*!*WARNING:  must be set to PC_PROTOCOL_UNDEFINED 0 for this class
iInterface:                        0x07
     English (United States)  "Traktor Kontrol S4 MK2"

          ===>Audio Control Interface Header Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x24 (CS_INTERFACE)
bDescriptorSubtype:                0x01 (HEADER)
bcdADC:                          0x0200
wTotalLength:                    0x8708
bInCollection:                     0x00

          ===>Descriptor Hex Dump<===
bLength:                           0x08
bDescriptorType:                   0x24
08 24 0A 28 01 07 00 1A 

          ===>Descriptor Hex Dump<===
bLength:                           0x11
bDescriptorType:                   0x24
11 24 02 02 01 01 00 28 04 00 00 00 00 10 00 00 
02 

          ===>Audio Control Feature Unit Descriptor<===
bLength:                           0x1A
bDescriptorType:                   0x24 (CS_INTERFACE)
bDescriptorSubtype:                0x06 (FEATURE_UNIT)
bUnitID:                           0x0A
bSourceID:                         0x02
bControlSize:                      0x00
Audio controls are not available (bControlSize = 0)

          ===>Descriptor Hex Dump<===
bLength:                           0x0C
bDescriptorType:                   0x24
0C 24 03 14 01 03 00 0A 28 00 00 05 

          ===>Descriptor Hex Dump<===
bLength:                           0x11
bDescriptorType:                   0x24
11 24 02 01 01 02 00 28 06 00 00 00 00 1C 00 00 
03 

          ===>Audio Control Feature Unit Descriptor<===
bLength:                           0x22
bDescriptorType:                   0x24 (CS_INTERFACE)
bDescriptorSubtype:                0x06 (FEATURE_UNIT)
bUnitID:                           0x0B
bSourceID:                         0x01
bControlSize:                      0x00
Audio controls are not available (bControlSize = 0)

          ===>Descriptor Hex Dump<===
bLength:                           0x0C
bDescriptorType:                   0x24
0C 24 03 16 01 01 00 0B 28 00 00 04 

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x01
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface SubClass
bInterfaceProtocol:                0x20
*!*WARNING:  must be set to PC_PROTOCOL_UNDEFINED 0 for this class
iInterface:                        0x08
     English (United States)  "Audio Out"

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x01
bAlternateSetting:                 0x01
bNumEndpoints:                     0x02
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface SubClass
bInterfaceProtocol:                0x20
*!*WARNING:  must be set to PC_PROTOCOL_UNDEFINED 0 for this class
iInterface:                        0x09
     English (United States)  "Audio Out Alt"

          ===>Descriptor Hex Dump<===
bLength:                           0x10
bDescriptorType:                   0x24
10 24 01 02 00 01 01 00 00 00 04 00 00 00 00 10 

          ===>Audio Streaming Format Type Descriptor<===
bLength:                           0x06
bDescriptorType:                   0x24 (CS_INTERFACE)
bDescriptorSubtype:                0x02 (FORMAT_TYPE)
bFormatType:                       0x01 (FORMAT_TYPE_I)
bNrChannels:                       0x04
bSubframeSize:                     0x18
bBitResolution:                    0x07 (7)
bSamFreqType:                      0x05 (Discrete)
tSamFreq[1]:                   0x000501 (1281 Hz)
tSamFreq[2]:                   0x080101 (524545 Hz)
tSamFreq[3]:                   0x000125 (293 Hz)
tSamFreq[4]:                   0x080200 (524800 Hz)
tSamFreq[5]:                   0x050700 (329472 Hz)

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x01  -> Direction: OUT - EndpointID: 1
bmAttributes:                      0x05  -> Isochronous Transfer Type, 
Synchronization Type = Asynchronous, Usage Type = Data Endpoint
wMaxPacketSize:                  0x0100 = 1 transactions per microframe, 0x100 
max bytes
bInterval:                         0x01

          ===>Descriptor Hex Dump<===
bLength:                           0x08
bDescriptorType:                   0x25
08 25 01 00 00 02 08 00 

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x11  -> Isochronous Transfer Type, 
Synchronization Type = No Synchronization, Usage Type = Feedback Endpoint
wMaxPacketSize:                  0x0004 = 1 transactions per microframe, 0x04 
max bytes
bInterval:                         0x04

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x02
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface SubClass
bInterfaceProtocol:                0x20
*!*WARNING:  must be set to PC_PROTOCOL_UNDEFINED 0 for this class
iInterface:                        0x0A
     English (United States)  "Audio In"

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x02
bAlternateSetting:                 0x01
bNumEndpoints:                     0x01
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface SubClass
bInterfaceProtocol:                0x20
*!*WARNING:  must be set to PC_PROTOCOL_UNDEFINED 0 for this class
iInterface:                        0x0B
     English (United States)  "Audio In Alt"

          ===>Descriptor Hex Dump<===
bLength:                           0x10
bDescriptorType:                   0x24
10 24 01 16 00 01 01 00 00 00 06 00 00 00 00 1C 

          ===>Audio Streaming Format Type Descriptor<===
bLength:                           0x06
bDescriptorType:                   0x24 (CS_INTERFACE)
bDescriptorSubtype:                0x02 (FORMAT_TYPE)
bFormatType:                       0x01 (FORMAT_TYPE_I)
bNrChannels:                       0x04
bSubframeSize:                     0x18
bBitResolution:                    0x07 (7)
bSamFreqType:                      0x05 (Discrete)
tSamFreq[1]:                   0x800582 (8390018 Hz)
tSamFreq[2]:                   0x080101 (524545 Hz)
tSamFreq[3]:                   0x000125 (293 Hz)
tSamFreq[4]:                   0x080200 (524800 Hz)
tSamFreq[5]:                   0x040900 (264448 Hz)

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x82  -> Direction: IN - EndpointID: 2
bmAttributes:                      0x05  -> Isochronous Transfer Type, 
Synchronization Type = Asynchronous, Usage Type = Data Endpoint
wMaxPacketSize:                  0x0180 = 1 transactions per microframe, 0x180 
max bytes
bInterval:                         0x01

          ===>Descriptor Hex Dump<===
bLength:                           0x08
bDescriptorType:                   0x25
08 25 01 00 00 02 08 00 

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x03
bAlternateSetting:                 0x00
bNumEndpoints:                     0x02
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x03  -> MIDI Streaming Interface SubClass
bInterfaceProtocol:                0x00
iInterface:                        0x00

          ===>Descriptor Hex Dump<===
bLength:                           0x07
bDescriptorType:                   0x24
07 24 01 00 01 3D 00 

          ===>Descriptor Hex Dump<===
bLength:                           0x06
bDescriptorType:                   0x24
06 24 02 01 33 00 

          ===>Descriptor Hex Dump<===
bLength:                           0x06
bDescriptorType:                   0x24
06 24 02 02 34 00 

          ===>Descriptor Hex Dump<===
bLength:                           0x09
bDescriptorType:                   0x24
09 24 03 01 37 01 34 01 00 

          ===>Descriptor Hex Dump<===
bLength:                           0x09
bDescriptorType:                   0x24
09 24 03 02 38 01 33 01 00 

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x83  -> Direction: IN - EndpointID: 3
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Descriptor Hex Dump<===
bLength:                           0x05
bDescriptorType:                   0x25
05 25 01 01 37 

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x02  -> Direction: OUT - EndpointID: 2
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Descriptor Hex Dump<===
bLength:                           0x05
bDescriptorType:                   0x25
05 25 01 01 33 

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x04
bAlternateSetting:                 0x00
bNumEndpoints:                     0x02
bInterfaceClass:                   0x03  -> HID Interface Class
bInterfaceSubClass:                0x00
bInterfaceProtocol:                0x00
iInterface:                        0x00

          ===>HID Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x21
bcdHID:                          0x0110
bCountryCode:                      0x00
bNumDescriptors:                   0x01
bDescriptorType:                   0x22 (Report Descriptor)
wDescriptorLength:               0x0490

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x84  -> Direction: IN - EndpointID: 4
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 1 transactions per microframe, 0x40 
max bytes
bInterval:                         0x01

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x03  -> Direction: OUT - EndpointID: 3
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 1 transactions per microframe, 0x40 
max bytes
bInterval:                         0x05

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x05
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0xFE  -> This is an Application Specific USB 
Device Interface Class
  -> This is a Device Firmware Application Specific USB Device Interface Class
bInterfaceSubClass:                0x01
bInterfaceProtocol:                0x01
iInterface:                        0x00

          ===>Descriptor Hex Dump<===
bLength:                           0x07
bDescriptorType:                   0x21
07 21 07 FA 00 40 00 

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x06
bAlternateSetting:                 0x00
bNumEndpoints:                     0x03
bInterfaceClass:                   0xFF  -> Interface Class Unknown to USBView
bInterfaceSubClass:                0xF0
bInterfaceProtocol:                0x00
iInterface:                        0x28
     English (United States)  "iAP Interface"

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x04  -> Direction: OUT - EndpointID: 4
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x85  -> Direction: IN - EndpointID: 5
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x86  -> Direction: IN - EndpointID: 6
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 1 transactions per microframe, 0x40 
max bytes
bInterval:                         0x06
0x17cc - 0x1310
Native Instruments
Traktor Kontrol S4 MK2
5F2EE6D7
Firmware Rev. 70, 0x0046, 0.4.6

[DEVICE]
  bcdUSB:                2.0
  bDeviceClass:          0xEF (Miscellaneous)
  bDeviceSubClass:       0x02 (Interface Association Descriptor)
  bDeviceProtocol:       0x01
  bMaxPacketSize:        64 bytes (0x40)
  idVendor:              0x17CC
  idProduct:             0x1310
  bcdDevice:             0x0046
  iManufacturer:         0x0C: Native Instruments
  iProduct:              0x07: Traktor Kontrol S4 MK2
  iSerialNumber:         0x0D: 5F2EE6D7
  bNumConfigurations:    0x01
[CONFIGURATION]
  wTotalLength:          426 bytes (0x01AA)
  bNumInterfaces:        0x07
  bConfigurationValue:   0x01
  iConfiguration:        0x00
  bmAttributes:          none
  MaxPower:              480 mA (0x00F0)
[INTERFACE_ASSOCIATION]
  bFirstInterface:       0x00
  bInterfaceCount:       0x04
  bFunctionClass:        0x01 (Audio)
  bFunctionSubClass:     0x00 (Generic)
  bFunctionProtocol:     0x20
  iFunction:             0x00
[INTERFACE #0]
  bNumEndpoints:         0x00
  bInterfaceClass:       0x01 (Audio)
  bInterfaceSubClass:    0x01 (Audio Control)
  bInterfaceProtocol:    0x20
  iInterface:            0x07: Traktor Kontrol S4 MK2
[CLASS_INTERFACE (Audio Control Header)]
  bcdADC:                2.00
  bCategory:             I/O Box
  wTotalLength:          135 bytes (0x0087)
  bmControls:            0x00
[CLASS_INTERFACE (Audio Control Clock Source)]
  bClockID:              0x28
  bmAttributes:          Internal fixed Clock
  bmControls:            0x07
  bAssocTerminal:        0x00
  iClockSource:          0x1A: Internal Clock
[CLASS_INTERFACE (Audio Control Input Terminal)]
  bTerminalID:           0x02
  wTerminalType:         USB streaming
  bAssocTerminal:        0x00
  bCSourceID:            0x28
  bNrChannels:           0x04
  bmChannelConfig:       0x0
  iChannelNames:         0x10: Main Left, Main Right, Headphone Left, Headphone 
Right
  bmControls:            0x0
  iTerminal:             0x02: Input
[CLASS_INTERFACE (Audio Control Feature Unit)]
  bUnitID:               0x0A
  bSourceID:             0x02
  iFeature:              0x0F: Output Volume Control
[CLASS_INTERFACE (Audio Control Output Terminal)]
  bTerminalID:           0x14
  wTerminalType:         Speaker
  bAssocTerminal:        0x00
  bSourceID:             0x0A
  bCSourceID:            0x28
  bmControls:            0x0
  iTerminal:             0x05: Audio Output Terminal
[CLASS_INTERFACE (Audio Control Input Terminal)]
  bTerminalID:           0x01
  wTerminalType:         Microphone
  bAssocTerminal:        0x00
  bCSourceID:            0x28
  bNrChannels:           0x06
  bmChannelConfig:       0x0
  iChannelNames:         0x1C: Line/Phono A Left, Line/Phono A Right, 
Line/Phono B Left, Line/Phono B Right, Mic In (Mono), Mic In (Mono)
  bmControls:            0x0
  iTerminal:             0x03: Audio Input Terminal
[CLASS_INTERFACE (Audio Control Feature Unit)]
  bUnitID:               0x0B
  bSourceID:             0x01
  iFeature:              0x0E: Input Volume Control
[CLASS_INTERFACE (Audio Control Output Terminal)]
  bTerminalID:           0x16
  wTerminalType:         USB streaming
  bAssocTerminal:        0x00
  bSourceID:             0x0B
  bCSourceID:            0x28
  bmControls:            0x0
  iTerminal:             0x04: Output
[INTERFACE #1]
  bNumEndpoints:         0x00
  bInterfaceClass:       0x01 (Audio)
  bInterfaceSubClass:    0x02 (Audio Streaming)
  bInterfaceProtocol:    0x20
  iInterface:            0x08: Audio Out
[INTERFACE #1 - 1]
  bNumEndpoints:         0x02
  bInterfaceClass:       0x01 (Audio)
  bInterfaceSubClass:    0x02 (Audio Streaming)
  bInterfaceProtocol:    0x20
  iInterface:            0x09: Audio Out Alt
[CLASS_INTERFACE (Audio Streaming General)]
  bTerminalLink:         0x02
  bmControls:            0x00
  bFormatType:           0x01
  bmFormats:             PCM
  bNrChannels:           0x04
  bmChannelConfig:       0x0
  iChannelNames:         0x10: Main Left, Main Right, Headphone Left, Headphone 
Right
[CLASS_INTERFACE (Audio Streaming Format Type I)]
  bSubslotSize:          4 bytes
  bBitResolution:        24 bit
[ENDPOINT 1 - Out]
  bEndpointAddress:      0x01
  bmAttributes:          Isochronous, Asynchronous, Data endpoint
  wMaxPacketSize:        256 bytes, 1 transaction(s) per microframe (0x0100)
  bInterval:             0x01
[CLASS_ENDPOINT (Audio Streaming General)]
  bmAttributes:          0x00
  bmControls:            0x00
  bLockDelayUnits:       0x02
  wLockDelay:            8
[ENDPOINT 1 - In]
  bEndpointAddress:      0x81
  bmAttributes:          Isochronous, No Synchronization, Feedback endpoint
  wMaxPacketSize:        4 bytes, 1 transaction(s) per microframe (0x0004)
  bInterval:             0x04
[INTERFACE #2]
  bNumEndpoints:         0x00
  bInterfaceClass:       0x01 (Audio)
  bInterfaceSubClass:    0x02 (Audio Streaming)
  bInterfaceProtocol:    0x20
  iInterface:            0x0A: Audio In
[INTERFACE #2 - 1]
  bNumEndpoints:         0x01
  bInterfaceClass:       0x01 (Audio)
  bInterfaceSubClass:    0x02 (Audio Streaming)
  bInterfaceProtocol:    0x20
  iInterface:            0x0B: Audio In Alt
[CLASS_INTERFACE (Audio Streaming General)]
  bTerminalLink:         0x16
  bmControls:            0x00
  bFormatType:           0x01
  bmFormats:             PCM
  bNrChannels:           0x06
  bmChannelConfig:       0x0
  iChannelNames:         0x1C: Line/Phono A Left, Line/Phono A Right, 
Line/Phono B Left, Line/Phono B Right, Mic In (Mono), Mic In (Mono)
[CLASS_INTERFACE (Audio Streaming Format Type I)]
  bSubslotSize:          4 bytes
  bBitResolution:        24 bit
[ENDPOINT 2 - In]
  bEndpointAddress:      0x82
  bmAttributes:          Isochronous, Asynchronous, Data endpoint
  wMaxPacketSize:        384 bytes, 1 transaction(s) per microframe (0x0180)
  bInterval:             0x01
[CLASS_ENDPOINT (Audio Streaming General)]
  bmAttributes:          0x00
  bmControls:            0x00
  bLockDelayUnits:       0x02
  wLockDelay:            8
[INTERFACE #3]
  bNumEndpoints:         0x02
  bInterfaceClass:       0x01 (Audio)
  bInterfaceSubClass:    0x03 (MIDI Streaming)
  bInterfaceProtocol:    0x00
  iInterface:            0x00
[CLASS_INTERFACE (MIDI Streaming Header)]
  bcdMSC:                1.00
  wTotalLength:          61 bytes (0x003D)
[CLASS_INTERFACE (MIDI Streaming MIDI In Jack)]
  bJackType:             Embedded
  bJackID:               0x33
  iJack:                 0x00
[CLASS_INTERFACE (MIDI Streaming MIDI In Jack)]
  bJackType:             External
  bJackID:               0x34
  iJack:                 0x00
[CLASS_INTERFACE (MIDI Streaming MIDI Out Jack)]
  bJackType:             Embedded
  bJackID:               0x37
  bNrInputPins:          0x01
  baSourceID:            0x34
  baSourcePin:           0x01
  iJack:                 0x00
[CLASS_INTERFACE (MIDI Streaming MIDI Out Jack)]
  bJackType:             External
  bJackID:               0x38
  bNrInputPins:          0x01
  baSourceID:            0x33
  baSourcePin:           0x01
  iJack:                 0x00
[ENDPOINT 3 - In]
  bEndpointAddress:      0x83
  bmAttributes:          Bulk, Data endpoint
  wMaxPacketSize:        512 bytes, 1 transaction(s) per microframe (0x0200)
  bInterval:             0x00
[CLASS_ENDPOINT (MIDI Streaming General)]
  bNumEmbMIDIJack:       0x01
  baAssocJackID:         0x37
[ENDPOINT 2 - Out]
  bEndpointAddress:      0x02
  bmAttributes:          Bulk, Data endpoint
  wMaxPacketSize:        512 bytes, 1 transaction(s) per microframe (0x0200)
  bInterval:             0x00
[CLASS_ENDPOINT (MIDI Streaming General)]
  bNumEmbMIDIJack:       0x01
  baAssocJackID:         0x33
[INTERFACE #4]
  bNumEndpoints:         0x02
  bInterfaceClass:       0x03 (HID)
  bInterfaceSubClass:    0x00 (None)
  bInterfaceProtocol:    0x00
  iInterface:            0x00
[CLASS_DEVICE (HID)]
  bcdHID:                1.10
  bCountryCode:          0x00
  bNumDescriptors:       0x01
  bDescriptorType:       0x22
  wDescriptorLength:     1168 bytes (0x0490)
[ENDPOINT 4 - In]
  bEndpointAddress:      0x84
  bmAttributes:          Interrupt, Data endpoint
  wMaxPacketSize:        64 bytes, 1 transaction(s) per microframe (0x0040)
  bInterval:             0x01
[ENDPOINT 3 - Out]
  bEndpointAddress:      0x03
  bmAttributes:          Interrupt, Data endpoint
  wMaxPacketSize:        64 bytes, 1 transaction(s) per microframe (0x0040)
  bInterval:             0x05
[INTERFACE #5]
  bNumEndpoints:         0x00
  bInterfaceClass:       0xFE (Application Specific)
  bInterfaceSubClass:    0x01 (DFU)
  bInterfaceProtocol:    0x01
  iInterface:            0x00
[CLASS_DEVICE (DFU Functional)]
  bmAttributes:          Download, Upload, Manifestation tolerant
  wDetachTimeOut:        250 ms
  wTransferSize:         64 bytes
[INTERFACE #6]
  bNumEndpoints:         0x03
  bInterfaceClass:       0xFF (Vendor Specific)
  bInterfaceSubClass:    0xF0 (Vendor Specific)
  bInterfaceProtocol:    0x00
  iInterface:            0x28: iAP Interface
[ENDPOINT 4 - Out]
  bEndpointAddress:      0x04
  bmAttributes:          Bulk, Data endpoint
  wMaxPacketSize:        512 bytes, 1 transaction(s) per microframe (0x0200)
  bInterval:             0x00
[ENDPOINT 5 - In]
  bEndpointAddress:      0x85
  bmAttributes:          Bulk, Data endpoint
  wMaxPacketSize:        512 bytes, 1 transaction(s) per microframe (0x0200)
  bInterval:             0x00
[ENDPOINT 6 - In]
  bEndpointAddress:      0x86
  bmAttributes:          Interrupt, Data endpoint
  wMaxPacketSize:        64 bytes, 1 transaction(s) per microframe (0x0040)
  bInterval:             0x06

Other related posts: