UAC 接口关联描述符
2021-02-03
4723
0
和UVC设备的接口关联描述符的功能一样,UAC的接口关联描述也用于组织UAC的音频控制接接口和UAC的音频流接口描述符及其子描述符。
接口关联描述符的结构定义
typedef struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bFirstInterface;
UCHAR bInterfaceCount;
UCHAR bFunctionClass;
UCHAR bFunctionSubClass;
UCHAR bFunctionProtocol;
UCHAR iFunction;
} USB_INTERFACE_ASSOCIATION_DESCRIPTOR, *PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR;
- bLength :接口关联描述符的长度,固定长度为8
- bDescriptorType:描述符类型,接口关联描述符类型定义为USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE,值为0x0b。
- bFirstInterface:第一个接口编号。关联描述符中的接口号必须连续。
- bInterfaceCount:接口总数量(包括音频控制接口和所有音频流接口)
- bFunctionClass:定义了音频接口类代码AUDIO_FUNCTION ,值0x01
- bFunctionSubClass:定义了音频子类接口代码 ,值必须为FUNCTION_SUBCLASS_UNDEFINED=0x00.
- bFunctionProtocol: 定义了音频子类协议号。
对于UAC1.0,必须为00
对于UAC2.0,值为AF_VERSION_02_00=0x20 - iFunction:关联接口描述符的字符串描述符索引,用于设备功能的描述,且至少实现了英语(LANGID=0x0409)的字符串。
如对于UAC2.0,初始化为:
pIADesc->bLength = 0x08;
pIADesc->bDescriptorType = 0x0B;
pIADesc->bFirstInterface = 0x00;
pIADesc->bInterfaceCount = 0x02;
pIADesc->bFunctionClass = 0x01;
pIADesc->bFunctionSubClass = 0x00;
pIADesc->bFunctionProtocol = 0x20;
pIADesc->iFunction = 0x00;
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936