📄 usbdesc.h
字号:
/*++
版权 (c) 1997-1998 微软公司
模块名:
USBDESC.H
摘要:
这是在一个标准的系统首领文件中是仍然不的USB描述符的一个首领文件.
环境:
使用模式
修改历史:
03-06-1998 : 创建
--*/
#pragma pack(push, 1)
//*****************************************************************************
// D E F I N E S
//*****************************************************************************
#define USB_HID_DESCRIPTOR_TYPE 0x21
// 为声音的装置附录一的USB装置班级定义。声音装置班级编码
// A.2 音频接口子集码
#define USB_AUDIO_SUBCLASS_UNDEFINED 0x00
#define USB_AUDIO_SUBCLASS_AUDIOCONTROL 0x01
#define USB_AUDIO_SUBCLASS_AUDIOSTREAMING 0x02
#define USB_AUDIO_SUBCLASS_MIDISTREAMING 0x03
// A.4 声音类-特殊描述符类型
#define USB_AUDIO_CS_UNDEFINED 0x20
#define USB_AUDIO_CS_DEVICE 0x21
#define USB_AUDIO_CS_CONFIGURATION 0x23
#define USB_AUDIO_CS_STRING 0x24
#define USB_AUDIO_CS_INTERFACE 0x24
#define USB_AUDIO_CS_ENDPOINT 0x25
// A.5 声音类-特殊AC(音频)接口描述符图表类型
#define USB_AUDIO_AC_UNDEFINED 0x00
#define USB_AUDIO_AC_HEADER 0x01
#define USB_AUDIO_AC_INPUT_TERMINAL 0x02
#define USB_AUDIO_AC_OUTPUT_TERMINAL 0x03
#define USB_AUDIO_AC_MIXER_UNIT 0x04
#define USB_AUDIO_AC_SELECTOR_UNIT 0x05
#define USB_AUDIO_AC_FEATURE_UNIT 0x06
#define USB_AUDIO_AC_PROCESSING_UNIT 0x07
#define USB_AUDIO_AC_EXTENSION_UNIT 0x08
// A.6 声音类-特殊AS(流动音频)接口描述符图表类型
#define USB_AUDIO_AS_UNDEFINED 0x00
#define USB_AUDIO_AS_GENERAL 0x01
#define USB_AUDIO_AS_FORMAT_TYPE 0x02
#define USB_AUDIO_AS_FORMAT_SPECIFIC 0x03
// A.7 处理单位程序类型
#define USB_AUDIO_PROCESS_UNDEFINED 0x00
#define USB_AUDIO_PROCESS_UPDOWNMIX 0x01
#define USB_AUDIO_PROCESS_DOLBYPROLOGIC 0x02
#define USB_AUDIO_PROCESS_3DSTEREOEXTENDER 0x03
#define USB_AUDIO_PROCESS_REVERBERATION 0x04
#define USB_AUDIO_PROCESS_CHORUS 0x05
#define USB_AUDIO_PROCESS_DYNRANGECOMP 0x06
//*****************************************************************************
// T Y P E D E F S
//*****************************************************************************
// HID 描述符
typedef struct _USB_HID_DESCRIPTOR
{
UCHAR bLength; //长度
UCHAR bDescriptorType; //描述符类型
USHORT bcdHID;
UCHAR bCountryCode;
UCHAR bNumDescriptors;
//可选描述符结构体
struct
{
UCHAR bDescriptorType; //描述符长度
USHORT wDescriptorLength; //描述符类型
} OptionalDescriptors[1];
} USB_HID_DESCRIPTOR, *PUSB_HID_DESCRIPTOR;
// 终端描述符
typedef struct _USB_ENDPOINT_DESCRIPTOR2 {
UCHAR bLength; // 偏移量 0, 大小 1,长度
UCHAR bDescriptorType; // 偏移量 1, 大小 1,描述符类型
UCHAR bEndpointAddress; // 偏移量 2, 大小 1,终端地址
UCHAR bmAttributes; // 偏移量 3, 大小 1,属性
USHORT wMaxPacketSize; // 偏移量 4, 大小 2,信息包最大数
USHORT wInterval; // 偏移量 6, 大小 2,间隔
UCHAR bSyncAddress; // 偏移量 8, 大小 1,同步地址
} USB_ENDPOINT_DESCRIPTOR2, *PUSB_ENDPOINT_DESCRIPTOR2;
// 接口描述符
typedef struct _USB_INTERFACE_DESCRIPTOR2 {
UCHAR bLength; // 偏移量 0, 大小 1,长度
UCHAR bDescriptorType; // 偏移量 1, 大小 1,描述符类型
UCHAR bInterfaceNumber; // 偏移量 2, 大小 1,接口数
UCHAR bAlternateSetting; // 偏移量 3, 大小 1,改变设置
UCHAR bNumEndpoints; // 偏移量 4, 大小 1,终端数
UCHAR bInterfaceClass; // 偏移量 5, 大小 1,接口类
UCHAR bInterfaceSubClass; // 偏移量 6, 大小 1,接口子类
UCHAR bInterfaceProtocol; // 偏移量 7, 大小 1,接口协议
UCHAR iInterface; // 偏移量 8, 大小 1,接口
USHORT wNumClasses; // 偏移量 9, 大小 2,类数
} USB_INTERFACE_DESCRIPTOR2, *PUSB_INTERFACE_DESCRIPTOR2;
// USB 设备音频描述符
typedef struct _USB_AUDIO_COMMON_DESCRIPTOR {
UCHAR bLength; //长度
UCHAR bDescriptorType; //描述符类型
UCHAR bDescriptorSubtype; //描述符图表类型
} USB_AUDIO_COMMON_DESCRIPTOR,*PUSB_AUDIO_COMMON_DESCRIPTOR;
// 4.3.2 类-特殊AC(音频控制)接口描述符
typedef struct _USB_AUDIO_AC_INTERFACE_HEADER_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
USHORT bcdADC;
USHORT wTotalLength;
UCHAR bInCollection;
UCHAR baInterfaceNr[1];
} USB_AUDIO_AC_INTERFACE_HEADER_DESCRIPTOR,*PUSB_AUDIO_AC_INTERFACE_HEADER_DESCRIPTOR;
// 4.3.2.1 音频输入端描述符
typedef struct _USB_AUDIO_INPUT_TERMINAL_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bTerminalID;
USHORT wTerminalType;
UCHAR bAssocTerminal;
UCHAR bNrChannels;
USHORT wChannelConfig;
UCHAR iChannelNames;
UCHAR iTerminal;
} USB_AUDIO_INPUT_TERMINAL_DESCRIPTOR,
*PUSB_AUDIO_INPUT_TERMINAL_DESCRIPTOR;
// 4.3.2.2 音频输出端描述符
typedef struct _USB_AUDIO_OUTPUT_TERMINAL_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bTerminalID;
USHORT wTerminalType;
UCHAR bAssocTerminal;
UCHAR bSoruceID;
UCHAR iTerminal;
} USB_AUDIO_OUTPUT_TERMINAL_DESCRIPTOR,*PUSB_AUDIO_OUTPUT_TERMINAL_DESCRIPTOR;
// 4.3.2.3 音频混合器单位描述符
//
typedef struct _USB_AUDIO_MIXER_UNIT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bUnitID;
UCHAR bNrInPins;
UCHAR baSourceID[1];
} USB_AUDIO_MIXER_UNIT_DESCRIPTOR,*PUSB_AUDIO_MIXER_UNIT_DESCRIPTOR;
// 4.3.2.4 音频选择器单位描述符
typedef struct _USB_AUDIO_SELECTOR_UNIT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bUnitID;
UCHAR bNrInPins;
UCHAR baSourceID[1];
} USB_AUDIO_SELECTOR_UNIT_DESCRIPTOR,*PUSB_AUDIO_SELECTOR_UNIT_DESCRIPTOR;
// 4.3.2.5 音频特征单位描述符
typedef struct _USB_AUDIO_FEATURE_UNIT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bUnitID;
UCHAR bSourceID;
UCHAR bControlSize;
UCHAR bmaControls[1];
} USB_AUDIO_FEATURE_UNIT_DESCRIPTOR,*PUSB_AUDIO_FEATURE_UNIT_DESCRIPTOR;
// 4.3.2.6 音频处理单位描述符
typedef struct _USB_AUDIO_PROCESSING_UNIT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bUnitID;
USHORT wProcessType;
UCHAR bNrInPins;
UCHAR baSourceID[1];
} USB_AUDIO_PROCESSING_UNIT_DESCRIPTOR,*PUSB_AUDIO_PROCESSING_UNIT_DESCRIPTOR;
// 4.3.2.7 音频扩展单位描述符
typedef struct _USB_AUDIO_EXTENSION_UNIT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bUnitID;
USHORT wExtensionCode;
UCHAR bNrInPins;
UCHAR baSourceID[1];
} USB_AUDIO_EXTENSION_UNIT_DESCRIPTOR,*PUSB_AUDIO_EXTENSION_UNIT_DESCRIPTOR;
// 4.5.2 音频常规描述符
typedef struct _USB_AUDIO_GENERAL_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bTerminalLink;
UCHAR bDelay;
USHORT wFormatTag;
} USB_AUDIO_GENERAL_DESCRIPTOR,*PUSB_AUDIO_GENERAL_DESCRIPTOR;
// 4.6.1.2 音频终端描述符
typedef struct _USB_AUDIO_ENDPOINT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bmAttributes;
UCHAR bLockDelayUnits;
USHORT wLockDelay;
} USB_AUDIO_ENDPOINT_DESCRIPTOR,*PUSB_AUDIO_ENDPOINT_DESCRIPTOR;
// 音频普通格式描述符
typedef struct _USB_AUDIO_COMMON_FORMAT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bFormatType;
} USB_AUDIO_COMMON_FORMAT_DESCRIPTOR,*PUSB_AUDIO_COMMON_FORMAT_DESCRIPTOR;
// 2.1.5 第一类型格式类型描述符
// 2.3.1 第三类型格式类型描述符
typedef struct _USB_AUDIO_TYPE_I_OR_III_FORMAT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bFormatType;
UCHAR bNrChannels;
UCHAR bSubframeSize;
UCHAR bBitResolution;
UCHAR bSamFreqType;
} USB_AUDIO_TYPE_I_OR_III_FORMAT_DESCRIPTOR,*PUSB_AUDIO_TYPE_I_OR_III_FORMAT_DESCRIPTOR;
// 2.2.6 第二类型格式类型描述符
typedef struct _USB_AUDIO_TYPE_II_FORMAT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bDescriptorSubtype;
UCHAR bFormatType;
USHORT wMaxBitRate;
USHORT wSamplesPerFrame;
UCHAR bSamFreqType;
} USB_AUDIO_TYPE_II_FORMAT_DESCRIPTOR,*PUSB_AUDIO_TYPE_II_FORMAT_DESCRIPTOR;
#pragma pack(pop)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -