13 #define USBAUDIO_TAG 'AbsU' 14 #define USB_AUDIO_CONTROL_TERMINAL_DESCRIPTOR_TYPE (0x24) 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) 35 #define USB_AUDIO_INPUT_TERMINAL (0x02) 36 #define USB_AUDIO_OUTPUT_TERMINAL (0x03) 38 #define DEFINE_KSPROPERTY_ITEM_AUDIO_VOLUME(Handler)\ 39 DEFINE_KSPROPERTY_ITEM(\ 40 KSPROPERTY_AUDIO_VOLUMELEVEL,\ 42 sizeof(KSNODEPROPERTY_AUDIO_CHANNEL),\ 44 (Handler), NULL, 0, NULL, NULL, 0) 47 #define DEFINE_KSPROPERTY_TABLE_AUDIO_VOLUME(TopologySet, Handler)\ 48 DEFINE_KSPROPERTY_TABLE(TopologySet) {\ 49 DEFINE_KSPROPERTY_ITEM_AUDIO_VOLUME(Handler)\ 52 #define DEFINE_KSPROPERTY_ITEM_AUDIO_MUTE(Handler)\ 53 DEFINE_KSPROPERTY_ITEM(\ 54 KSPROPERTY_AUDIO_MUTE,\ 56 sizeof(KSNODEPROPERTY_AUDIO_CHANNEL),\ 58 (Handler), NULL, 0, NULL, NULL, 0) 60 #define DEFINE_KSPROPERTY_TABLE_AUDIO_MUTE(TopologySet, Handler)\ 61 DEFINE_KSPROPERTY_TABLE(TopologySet) {\ 62 DEFINE_KSPROPERTY_ITEM_AUDIO_MUTE(Handler)\ 239 OUT PULONG NonStreamingTerminalDescriptorCount,
240 OUT PULONG TotalTerminalDescriptorCount);
399 _In_opt_ const KSATTRIBUTE_LIST* AttributeRange);
VOID NTAPI CountTerminalUnits(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, OUT PULONG NonStreamingTerminalDescriptorCount, OUT PULONG TotalTerminalDescriptorCount)
struct USB_AUDIO_CONTROL_SELECTOR_UNIT_DESCRIPTOR * PUSB_AUDIO_CONTROL_SELECTOR_UNIT_DESCRIPTOR
NTSTATUS NTAPI USBAudioPinProcess(_In_ PKSPIN Pin)
PNODE_CONTEXT NodeContext
NTSTATUS NTAPI UsbAudioCaptureComplete(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context)
PDEVICE_OBJECT LowerDevice
struct USB_AUDIO_CONTROL_INPUT_TERMINAL_DESCRIPTOR * PUSB_AUDIO_CONTROL_INPUT_TERMINAL_DESCRIPTOR
NTSTATUS NTAPI USBAudioPnPQueryPower(_In_ PKSDEVICE Device, _In_ PIRP Irp, _In_ DEVICE_POWER_STATE DeviceTo, _In_ DEVICE_POWER_STATE DeviceFrom, _In_ SYSTEM_POWER_STATE SystemTo, _In_ SYSTEM_POWER_STATE SystemFrom, _In_ POWER_ACTION Action)
struct USB_AUDIO_STREAMING_FORMAT_TYPE_DESCRIPTOR * PUSB_AUDIO_STREAMING_FORMAT_TYPE_DESCRIPTOR
struct __DEVICE_EXTENSION__ * PDEVICE_EXTENSION
struct USB_AUDIO_CONTROL_FEATURE_UNIT_DESCRIPTOR * PUSB_AUDIO_CONTROL_FEATURE_UNIT_DESCRIPTOR
VOID NTAPI USBAudioPinReset(_In_ PKSPIN Pin)
PVOID NTAPI AllocFunction(IN ULONG ItemSize)
VOID NTAPI USBAudioPnPSetPower(_In_ PKSDEVICE Device, _In_ PIRP Irp, _In_ DEVICE_POWER_STATE To, _In_ DEVICE_POWER_STATE From)
NTSTATUS NTAPI USBAudioPinCreate(_In_ PKSPIN Pin, _In_ PIRP Irp)
PDEVICE_OBJECT LowerDevice
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
PDEVICE_EXTENSION DeviceExtension
VOID NTAPI USBAudioPnPRemove(_In_ PKSDEVICE Device, _In_ PIRP Irp)
PUSB_AUDIO_CONTROL_INPUT_TERMINAL_DESCRIPTOR UsbAudioGetStreamingTerminalDescriptorByIndex(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, IN ULONG Index)
_In_ PDEVICE_OBJECT DeviceObject
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
struct NODE_CONTEXT * PNODE_CONTEXT
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
NTSTATUS SubmitUrbSync(IN PDEVICE_OBJECT Device, IN PURB Urb)
NTSTATUS NTAPI USBAudioPinClose(_In_ PKSPIN Pin, _In_ PIRP Irp)
WORK_QUEUE_ITEM CaptureWorkItem
struct FILTER_CONTEXT * PFILTER_CONTEXT
struct USB_AUDIO_CONTROL_MIXER_UNIT_DESCRIPTOR * PUSB_AUDIO_CONTROL_MIXER_UNIT_DESCRIPTOR
VOID NTAPI USBAudioPnPSurpriseRemoval(_In_ PKSDEVICE Device, _In_ PIRP Irp)
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
PDEVICE_OBJECT LowerDevice
PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
_In_ WDFCOLLECTION _In_ ULONG Index
PUSB_COMMON_DESCRIPTOR Descriptor
NTSTATUS NTAPI USBAudioPnPQueryCapabilities(_In_ PKSDEVICE Device, _In_ PIRP Irp, _Inout_ PDEVICE_CAPABILITIES Capabilities)
NTSTATUS NTAPI USBAudioPnPQueryRemove(_In_ PKSDEVICE Device, _In_ PIRP Irp)
VOID NTAPI USBAudioPnPCancelStop(_In_ PKSDEVICE Device, _In_ PIRP Irp)
NTSTATUS NTAPI USBAudioAddDevice(_In_ PKSDEVICE Device)
NTSTATUS NTAPI UsbAudioPinDataIntersect(_In_ PVOID Context, _In_ PIRP Irp, _In_ PKSP_PIN Pin, _In_ PKSDATARANGE DataRange, _In_ PKSDATARANGE MatchingDataRange, _In_ ULONG DataBufferSize, _Out_ PVOID Data, _Out_ PULONG DataSize)
VOID NTAPI FreeFunction(IN PVOID Item)
NTSTATUS NTAPI USBAudioPinSetDataFormat(_In_ PKSPIN Pin, _In_opt_ PKSDATAFORMAT OldFormat, _In_opt_ PKSMULTIPLE_ITEM OldAttributeList, _In_ const KSDATARANGE *DataRange, _In_opt_ const KSATTRIBUTE_LIST *AttributeRange)
struct USB_AUDIO_CONTROL_OUTPUT_TERMINAL_DESCRIPTOR * PUSB_AUDIO_CONTROL_OUTPUT_TERMINAL_DESCRIPTOR
VOID NTAPI USBAudioPnPStop(_In_ PKSDEVICE Device, _In_ PIRP Irp)
NTSTATUS NTAPI USBAudioPinSetDeviceState(_In_ PKSPIN Pin, _In_ KSSTATE ToState, _In_ KSSTATE FromState)
NTSTATUS NTAPI USBAudioCreateFilterContext(PKSDEVICE Device)
struct PIN_CONTEXT * PPIN_CONTEXT
_Must_inspect_result_ _In_ WDFDEVICE Device
NTSTATUS NTAPI USBAudioPnPQueryStop(_In_ PKSDEVICE Device, _In_ PIRP Irp)
struct USB_AUDIO_CONTROL_INTERFACE_HEADER_DESCRIPTOR * PUSB_AUDIO_CONTROL_INTERFACE_HEADER_DESCRIPTOR
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
NTSTATUS NTAPI UsbAudioRenderComplete(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context)
USBD_CONFIGURATION_HANDLE ConfigurationHandle
PUSB_DEVICE_DESCRIPTOR DeviceDescriptor
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
PKSWORKER StarvationWorker
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
PDEVICE_EXTENSION DeviceExtension
WORK_QUEUE_ITEM StarvationWorkItem
struct USB_AUDIO_STREAMING_INTERFACE_DESCRIPTOR * PUSB_AUDIO_STREAMING_INTERFACE_DESCRIPTOR
struct __DEVICE_EXTENSION__ DEVICE_EXTENSION
NTSTATUS NTAPI USBAudioPnPStart(_In_ PKSDEVICE Device, _In_ PIRP Irp, _In_opt_ PCM_RESOURCE_LIST TranslatedResourceList, _In_opt_ PCM_RESOURCE_LIST UntranslatedResourceList)
PUSBD_INTERFACE_INFORMATION InterfaceInfo
LIST_ENTRY DoneIrpListHead
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
VOID NTAPI USBAudioPnPCancelRemove(_In_ PKSDEVICE Device, _In_ PIRP Irp)