整個Configuration 分成4大部分 :
- configuration
- interface,
- class or vendor specific( 如 HID, Audio)
- endpoint
以一个usb audio 的设备configuration descriptor来举例:
typedef struct
{
configuration_descriptor cd; // Configuration descriptor
interface_descriptor id0; // Audio control interface
audio_header_descriptor ahd; // Audio control header
input_terminal_descriptor itd; // Audio input terminal
feature_unit_descriptor fud; // Audio feature unit
output_terminal_descriptor otd; // Audio output terminal
interface_descriptor id1_0; // Audio zero-bandwidth interface
interface_descriptor id1_1; // Audio streaming interface
stream_interface_descriptor sid; // Audio stream descriptor
typeI_format_descriptor tfd; // Audio format descriptor
stream_endpoint_descriptor sed; // Streaming endpoint descriptor
audio_endpoint_descriptor aed; // Audio endpoint descriptor
interface_descriptor id2; // HID interface descriptor
hid_descriptor hd; // HID descriptor
endpoint_descriptor ed1; // GET_REPORT input endpoint
endpoint_descriptor ed2; // SET_REPORT output endpoint
} complete_configuration; // End of complete_configuration
configuration_descriptor:
{ // Standard configuration descriptor
0x09, // bLength (9)
0x02, // bDescriptorType (CONFIGURATION)
0x9100, // wTotallength (145)
0x03, // bNumInte