16 DPRINT1(
"HDA_InterfaceReference\n");
24 DPRINT1(
"HDA_InterfaceDereference\n");
51 Verbs[
Index] = CodecTransfer[
Index].Output.Command;
212 DPRINT1(
"HDA_GetDeviceInformation\n");
215 DeviceInformation->CodecsDetected = 1;
216 DeviceInformation->DeviceVersion = DeviceExtension->
Codec->
Major << 8 | DeviceExtension->
Codec->
Minor;
217 DeviceInformation->DriverVersion = DeviceExtension->
Codec->
Major << 8 | DeviceExtension->
Codec->
Minor;
218 DeviceInformation->IsStripingSupported =
FALSE;
236 *CodecAddress = DeviceExtension->
Codec->
Addr;
318 InterfaceHDA->
Context = DeviceExtension;
343 InterfaceHDA->
Context = DeviceExtension;
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
VOID NTAPI HDA_InterfaceDereference(PVOID BusContext)
VOID NTAPI HDA_GetResourceInformation(IN PVOID _context, OUT PUCHAR CodecAddress, OUT PUCHAR FunctionGroupStartNode)
NTSTATUS NTAPI HDA_UnregisterEventCallback(IN PVOID _context, IN UCHAR Tag)
NTSTATUS NTAPI HDA_TransferCodecVerbs(IN PVOID _context, IN ULONG Count, IN OUT PHDAUDIO_CODEC_TRANSFER CodecTransfer, IN PHDAUDIO_TRANSFER_COMPLETE_CALLBACK Callback, IN PVOID Context)
NTSTATUS NTAPI HDA_SetDmaEngineState(IN PVOID _context, IN HDAUDIO_STREAM_STATE StreamState, IN ULONG NumberOfHandles, IN PHANDLE Handles)
VOID NTAPI HDA_GetWallClockRegister(IN PVOID _context, OUT PULONG *Wallclock)
NTSTATUS NTAPI HDA_ChangeBandwidthAllocation(IN PVOID _context, IN HANDLE Handle, IN PHDAUDIO_STREAM_FORMAT StreamFormat, OUT PHDAUDIO_CONVERTER_FORMAT ConverterFormat)
NTSTATUS NTAPI HDA_AllocateRenderDmaEngine(IN PVOID _context, IN PHDAUDIO_STREAM_FORMAT StreamFormat, IN BOOLEAN Stripe, OUT PHANDLE Handle, OUT PHDAUDIO_CONVERTER_FORMAT ConverterFormat)
NTSTATUS NTAPI HDA_FreeDmaBuffer(IN PVOID _context, IN HANDLE Handle)
NTSTATUS HDA_PDOHandleQueryInterface(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI HDA_RegisterEventCallback(IN PVOID _context, IN PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine, IN PVOID Context, OUT PUCHAR Tag)
NTSTATUS NTAPI HDA_GetDeviceInformation(IN PVOID _context, OUT PHDAUDIO_DEVICE_INFORMATION DeviceInformation)
NTSTATUS NTAPI HDA_GetLinkPositionRegister(IN PVOID _context, IN HANDLE Handle, OUT PULONG *Position)
NTSTATUS NTAPI HDA_AllocateCaptureDmaEngine(IN PVOID _context, IN UCHAR CodecAddress, IN PHDAUDIO_STREAM_FORMAT StreamFormat, OUT PHANDLE Handle, OUT PHDAUDIO_CONVERTER_FORMAT ConverterFormat)
NTSTATUS NTAPI HDA_AllocateDmaBufferWithNotification(IN PVOID _context, IN HANDLE Handle, IN ULONG NotificationCount, IN SIZE_T RequestedBufferSize, OUT PMDL *BufferMdl, OUT PSIZE_T AllocatedBufferSize, OUT PSIZE_T OffsetFromFirstPage, OUT PUCHAR StreamId, OUT PULONG FifoSize)
NTSTATUS NTAPI HDA_UnregisterNotificationEvent(IN PVOID _context, IN HANDLE Handle, IN PKEVENT NotificationEvent)
NTSTATUS NTAPI HDA_RegisterNotificationEvent(PVOID _context, HANDLE Handle, IN PKEVENT NotificationEvent)
NTSTATUS NTAPI HDA_AllocateDmaBuffer(IN PVOID _context, IN HANDLE Handle, IN SIZE_T RequestedBufferSize, OUT PMDL *BufferMdl, OUT PSIZE_T AllocatedBufferSize, OUT PUCHAR StreamId, OUT PULONG FifoSize)
NTSTATUS NTAPI HDA_FreeDmaBufferWithNotification(IN PVOID _context, IN HANDLE Handle, IN PMDL BufferMdl, IN SIZE_T BufferSize)
NTSTATUS NTAPI HDA_FreeDmaEngine(IN PVOID _context, IN HANDLE Handle)
VOID NTAPI HDA_InterfaceReference(PVOID BusContext)
#define STATUS_NOT_SUPPORTED
#define STATUS_NOT_IMPLEMENTED
#define MAX_CODEC_RESPONSES
NTSTATUS HDA_SendVerbs(IN PDEVICE_OBJECT DeviceObject, IN PHDA_CODEC_ENTRY Codec, IN PULONG Verbs, OUT PULONG Responses, IN ULONG Count)
struct HDA_PDO_DEVICE_EXTENSION * PHDA_PDO_DEVICE_EXTENSION
VOID(NTAPI * PHDAUDIO_TRANSFER_COMPLETE_CALLBACK)(HDAUDIO_CODEC_TRANSFER *, PVOID)
enum _HDAUDIO_STREAM_STATE HDAUDIO_STREAM_STATE
struct _HDAUDIO_DEVICE_INFORMATION HDAUDIO_DEVICE_INFORMATION
VOID(NTAPI * PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)(HDAUDIO_CODEC_RESPONSE, PVOID)
struct _HDAUDIO_BUS_INTERFACE_V2 * PHDAUDIO_BUS_INTERFACE_V2
ULONG Responses[MAX_CODEC_RESPONSES]
PHDA_CODEC_AUDIO_GROUP AudioGroup
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine
PALLOCATE_DMA_BUFFER_WITH_NOTIFICATION AllocateDmaBufferWithNotification
PFREE_DMA_ENGINE FreeDmaEngine
PINTERFACE_REFERENCE InterfaceReference
PGET_DEVICE_INFORMATION GetDeviceInformation
PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation
PFREE_DMA_BUFFER FreeDmaBuffer
PUNREGISTER_NOTIFICATION_EVENT UnregisterNotificationEvent
PSET_DMA_ENGINE_STATE SetDmaEngineState
PREGISTER_EVENT_CALLBACK RegisterEventCallback
PREGISTER_NOTIFICATION_EVENT RegisterNotificationEvent
PGET_LINK_POSITION_REGISTER GetLinkPositionRegister
PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback
PINTERFACE_DEREFERENCE InterfaceDereference
PTRANSFER_CODEC_VERBS TransferCodecVerbs
PGET_WALL_CLOCK_REGISTER GetWallClockRegister
PFREE_DMA_BUFFER_WITH_NOTIFICATION FreeDmaBufferWithNotification
PALLOCATE_DMA_BUFFER AllocateDmaBuffer
PGET_RESOURCE_INFORMATION GetResourceInformation
PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine
union _IO_STACK_LOCATION::@1586 Parameters
struct _IO_STACK_LOCATION::@4026::@4052 QueryInterface
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
#define IsEqualGUIDAligned(guid1, guid2)