UAC 接口关联描述符

欢迎加入字节流官方QQ群:952873936或联系站长进行技术交流。

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;
微信公众号
字节流公众号  字节流QQ群:952873936
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!