6-channels microphone descriptor

Andes Hung 21 Reputation points
2021-01-11T09:23:22.197+00:00

We implement a UAC 2.0 multi-channels microphone.
2-channels device is fine, but 6-channels device is abnormal.
The "Default Format" combobox in tab "Advanced" of "Microphone Properties" is un-selectable. (Grayed out)
Is any limitation about such a device?
or is any additional descriptor required ?
The audio descriptor is listed below.

Thanks.

    ------------------- IAD Descriptor --------------------

bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B
bFirstInterface : 0x02
bInterfaceCount : 0x02
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x09 (String Descriptor 9)
Language 0x0409 : "eEver USB Audio Device"
Data (HexDump) : 08 0B 02 02 01 00 20 09 ...... .

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x09 (String Descriptor 9)
Language 0x0409 : "eEver USB Audio Device"
Data (HexDump) : 09 04 02 00 00 01 01 20 09 ....... .

    ---- Audio Control Interface Header Descriptor 2.0 ----

bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x0A (pro-audio)
wTotalLength : 0x005E (94 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
Data (HexDump) : 09 24 01 00 02 0A 5E 00 00 .$....^..

    ----- Audio Control Input Terminal Descriptor 2.0 -----

bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x04
wTerminalType : 0x0201 (Microphone)
bAssocTerminal : 0x00
bCSourceID : 0x16 (22)
bNrChannels : 0x06 (6 Channels)
bmChannelConfig : 0x00000000
iChannelNames : 0x00 (No String Descriptor)
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 11 24 02 04 01 02 00 16 06 00 00 00 00 00 00 00 .$..............
00 .

    ----- Audio Control Output Terminal Descriptor 2.0 ----

bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x0B
wTerminalType : 0x0101 (USB streaming)
bAssocTerminal : 0x00 (0)
bSourceID : 0x10 (16)
bCSourceID : 0x16 (22)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 0C 24 03 0B 01 01 00 10 16 00 00 00 .$..........

    ------ Audio Control Feature Unit Descriptor 2.0 ------

bLength : 0x22 (34 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x10 (16)
bSourceID : 0x04 (4)
bmaControls[0] : 0x03, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[3] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[4] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[5] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[6] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x00 (No String Descriptor)
Data (HexDump) : 22 24 06 10 04 03 00 00 00 00 00 00 00 00 00 00 "$..............
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 ..

    --- Audio Control Clock Source Unit Descriptor 2.0 ----

bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x16
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x00 (No String Descriptor)
Data (HexDump) : 08 24 0A 16 03 07 00 00 .$......

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x03
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x09 (String Descriptor 9)
Language 0x0409 : "eEver USB Audio Device"
Data (HexDump) : 09 04 03 00 00 01 02 20 09 ....... .

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x03
bAlternateSetting : 0x01
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x09 (String Descriptor 9)
Language 0x0409 : "eEver USB Audio Device"
Data (HexDump) : 09 04 03 01 01 01 02 20 09 ....... .

    ------ Audio Streaming Interface Descriptor 2.0 -------

bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x0B (11)
bmControls : 0x05
D1..0: Active Alt Settng: 0x01 (read only)
D3..2: Valid Alt Settng : 0x01 (read only)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x06 (6 channels)
bmChannelConfig : 0x00000003
iChannelNames : 0x00 (No String Descriptor)
Data (HexDump) : 10 24 01 0B 05 01 01 00 00 00 06 03 00 00 00 00 .$..............

    ----- Audio Streaming Format Type Descriptor 2.0 ------

bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x03 (3 bytes)
bBitResolution : 0x18 (24 bits)
Data (HexDump) : 06 24 02 01 03 18 .$....

    ----------------- Endpoint Descriptor -----------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x8A (Direction=IN EndpointID=10)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0400
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 8A 05 00 04 01 .......

    ------ SuperSpeed Endpoint Companion Descriptor -------

bLength : 0x06 (6 bytes)
bDescriptorType : 0x30 (SuperSpeed Endpoint Companion Descriptor)
bMaxBurst : 0x00 (up to 1 packets per burst)
bmAttributes : 0x00 (max 0 packets within a service interval)
wBytesPerInterval : 0x0400 (reserved bus time = 128000 弮s)
Data (HexDump) : 06 30 00 00 00 04 .0....

    ----------- Audio Data Endpoint Descriptor ------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x01
bLockDelayUnits : 0x00
wLockDelay : 0x0000
Data (HexDump) : 07 25 01 01 00 00 00 .%.....

Windows Hardware Performance
Windows Hardware Performance
Windows: A family of Microsoft operating systems that run across personal computers, tablets, laptops, phones, internet of things devices, self-contained mixed reality headsets, large collaboration screens, and other devices.Hardware Performance: Delivering / providing hardware or hardware systems or adjusting / adapting hardware or hardware systems.
1,541 questions
0 comments No comments
{count} votes

Accepted answer
  1. Girish Pattabiraman 76 Reputation points Microsoft Employee
    2021-01-19T20:02:12.353+00:00

    What formats do you expect to see?
    I can scan the descriptors and see if there is something missing.


0 additional answers

Sort by: Most helpful