13 #define USBAUDIO_TAG 'AbsU'
14 #define USB_AUDIO_CONTROL_TERMINAL_DESCRIPTOR_TYPE (0x24)
16 /* Universal Serial Bus Device Class Definition for Terminal Types Section 2.2 */
17 #define USB_AUDIO_STREAMING_TERMINAL_TYPE (0x0101)
19 #define USB_AUDIO_MICROPHONE_TERMINAL_TYPE (0x0201)
20 #define USB_AUDIO_DESKTOP_MICROPHONE_TERMINAL_TYPE (0x0202)
21 #define USB_AUDIO_PERSONAL_MICROPHONE_TERMINAL_TYPE (0x0203)
22 #define USB_AUDIO_OMMNI_MICROPHONE_TERMINAL_TYPE (0x0204)
23 #define USB_AUDIO_ARRAY_MICROPHONE_TERMINAL_TYPE (0x0205)
24 #define USB_AUDIO_ARRAY_PROCESSING_MICROPHONE_TERMINAL_TYPE (0x0206)
26 #define USB_AUDIO_SPEAKER_TERMINAL_TYPE (0x0301)
27 #define USB_HEADPHONES_SPEAKER_TERMINAL_TYPE (0x0302)
28 #define USB_AUDIO_HMDA_TERMINAL_TYPE (0x0303)
29 #define USB_AUDIO_DESKTOP_SPEAKER_TERMINAL_TYPE (0x0304)
30 #define USB_AUDIO_ROOM_SPEAKER_TERMINAL_TYPE (0x0305)
31 #define USB_AUDIO_COMMUNICATION_SPEAKER_TERMINAL_TYPE (0x0306)
32 #define USB_AUDIO_SUBWOOFER_TERMINAL_TYPE (0x0307)
33 #define USB_AUDIO_UNDEFINED_TERMINAL_TYPE (0xFFFF)
41 UCHAR bDescriptorType
;
42 UCHAR bDescriptorSubtype
;
47 }USB_AUDIO_CONTROL_INTERFACE_HEADER_DESCRIPTOR
, *PUSB_AUDIO_CONTROL_INTERFACE_HEADER_DESCRIPTOR
;
52 UCHAR bDescriptorType
;
53 UCHAR bDescriptorSubtype
;
59 }USB_AUDIO_CONTROL_OUTPUT_TERMINAL_DESCRIPTOR
, *PUSB_AUDIO_CONTROL_OUTPUT_TERMINAL_DESCRIPTOR
;
65 UCHAR bDescriptorType
;
66 UCHAR bDescriptorSubtype
;
71 USHORT wChannelConfig
;
74 }USB_AUDIO_CONTROL_INPUT_TERMINAL_DESCRIPTOR
, *PUSB_AUDIO_CONTROL_INPUT_TERMINAL_DESCRIPTOR
;
77 typedef struct __DEVICE_EXTENSION__
79 PDEVICE_OBJECT LowerDevice
; /* lower device*/
80 PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
; /* usb configuration descriptor */
81 PUSB_DEVICE_DESCRIPTOR DeviceDescriptor
; /* usb device descriptor */
82 PUSBD_INTERFACE_INFORMATION InterfaceInfo
; /* interface information */
83 USBD_CONFIGURATION_HANDLE ConfigurationHandle
; /* configuration handle */
85 }DEVICE_EXTENSION
, *PDEVICE_EXTENSION
;
91 USBAudioCreateFilterContext(
110 _In_ PKSDEVICE Device
116 _In_ PKSDEVICE Device
,
118 _In_opt_ PCM_RESOURCE_LIST TranslatedResourceList
,
119 _In_opt_ PCM_RESOURCE_LIST UntranslatedResourceList
124 USBAudioPnPQueryStop(
125 _In_ PKSDEVICE Device
,
131 USBAudioPnPCancelStop(
132 _In_ PKSDEVICE Device
,
139 _In_ PKSDEVICE Device
,
145 USBAudioPnPQueryRemove(
146 _In_ PKSDEVICE Device
,
152 USBAudioPnPCancelRemove(
153 _In_ PKSDEVICE Device
,
160 _In_ PKSDEVICE Device
,
166 USBAudioPnPQueryCapabilities(
167 _In_ PKSDEVICE Device
,
169 _Inout_ PDEVICE_CAPABILITIES Capabilities
174 USBAudioPnPSurpriseRemoval(
175 _In_ PKSDEVICE Device
,
181 USBAudioPnPQueryPower(
182 _In_ PKSDEVICE Device
,
184 _In_ DEVICE_POWER_STATE DeviceTo
,
185 _In_ DEVICE_POWER_STATE DeviceFrom
,
186 _In_ SYSTEM_POWER_STATE SystemTo
,
187 _In_ SYSTEM_POWER_STATE SystemFrom
,
188 _In_ POWER_ACTION Action
194 _In_ PKSDEVICE Device
,
196 _In_ DEVICE_POWER_STATE To
,
197 _In_ DEVICE_POWER_STATE From