5 #pragma warning(disable:4201) 6 #pragma warning(disable:4214) 9 DEFINE_GUID(GUID_HDAUDIO_BUS_INTERFACE, 0xd2eaf88b, 0xab18, 0x41a8, 0xb6, 0x64, 0x8d, 0x59, 0x21, 0x67, 0x67, 0x1b);
10 DEFINE_GUID(GUID_HDAUDIO_BUS_INTERFACE_BDL, 0xb4d65397, 0x5634, 0x40b0, 0xb0, 0x68, 0xf5, 0xb9, 0xf8, 0xb9, 0x67, 0xa5);
11 DEFINE_GUID(GUID_HDAUDIO_BUS_INTERFACE_V2, 0xb52af5fb, 0x424b, 0x4bb9, 0xa1, 0x60, 0x5b, 0x38, 0xbe, 0x94, 0xe5, 0x68);
12 DEFINE_GUID(GUID_HDAUDIO_BUS_CLASS, 0xbbd1a745, 0xadd6, 0x4575, 0x9c, 0x2e, 0x9b, 0x42, 0x8d, 0x1c, 0x32, 0x66);
14 #ifndef _HDAUDIO_CODEC_TRANSFER_ 15 #define _HDAUDIO_CODEC_TRANSFER_ 262 ULONG RequestedBufferSize,
375 #pragma warning(default:4201) 376 #pragma warning(default:4214) PGET_LINK_POSITION_REGISTER GetLinkPositionRegister
PFREE_DMA_BUFFER FreeDmaBuffer
_Must_inspect_result_ NTSTATUS(NTAPI * PFREE_CONTIGUOUS_DMA_BUFFER)(_In_ PVOID _context, _In_ HANDLE Handle)
PREGISTER_EVENT_CALLBACK RegisterEventCallback
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
PREGISTER_EVENT_CALLBACK RegisterEventCallback
struct _HDAUDIO_DEVICE_INFORMATION HDAUDIO_DEVICE_INFORMATION
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine
PINTERFACE_REFERENCE InterfaceReference
PGET_RESOURCE_INFORMATION GetResourceInformation
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine
struct _HDAUDIO_CODEC_RESPONSE * PHDAUDIO_CODEC_RESPONSE
PINTERFACE_REFERENCE InterfaceReference
struct _HDAUDIO_CODEC_COMMAND::@1980::@1983 Verb16
static BOOLEAN NTAPI Isr(PKINTERRUPT Interrupt, PVOID ServiceContext)
VOID(WINAPI * PINTERFACE_DEREFERENCE)(PVOID Context)
VOID(NTAPI * PGET_WALL_CLOCK_REGISTER)(_In_ PVOID _context, _Out_ PULONG *Wallclock)
PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine
_Must_inspect_result_ NTSTATUS(NTAPI * PGET_DEVICE_INFORMATION)(_In_ PVOID _context, _Out_ PHDAUDIO_DEVICE_INFORMATION DeviceInformation)
PALLOCATE_DMA_BUFFER AllocateDmaBuffer
PSET_DMA_ENGINE_STATE SetDmaEngineState
_Must_inspect_result_ NTSTATUS(NTAPI * PALLOCATE_DMA_BUFFER)(_In_ PVOID _context, _In_ HANDLE Handle, _In_ SIZE_T RequestedBufferSize, _Out_ PMDL *BufferMdl, _Out_ PSIZE_T AllocatedBufferSize, _Out_ PUCHAR StreamId, _Out_ PULONG FifoSize)
PGET_LINK_POSITION_REGISTER GetLinkPositionRegister
PGET_WALL_CLOCK_REGISTER GetWallClockRegister
struct _HDAUDIO_STREAM_FORMAT * PHDAUDIO_STREAM_FORMAT
PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation
DEFINE_GUID(GUID_HDAUDIO_BUS_INTERFACE, 0xd2eaf88b, 0xab18, 0x41a8, 0xb6, 0x64, 0x8d, 0x59, 0x21, 0x67, 0x67, 0x1b)
struct _HDAUDIO_CODEC_RESPONSE HDAUDIO_CODEC_RESPONSE
PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation
_Must_inspect_result_ NTSTATUS(NTAPI * PSET_DMA_ENGINE_STATE)(_In_ PVOID _context, _In_ HDAUDIO_STREAM_STATE StreamState, _In_ ULONG NumberOfHandles, _In_reads_(NumberOfHandles) PHANDLE Handles)
PINTERFACE_DEREFERENCE InterfaceDereference
_Must_inspect_result_ NTSTATUS(NTAPI * PALLOCATE_RENDER_DMA_ENGINE)(_In_ PVOID _context, _In_ PHDAUDIO_STREAM_FORMAT StreamFormat, _In_ BOOLEAN Stripe, _Out_ PHANDLE Handle, _Out_ PHDAUDIO_CONVERTER_FORMAT ConverterFormat)
struct _HDAUDIO_BUS_INTERFACE_V2 HDAUDIO_BUS_INTERFACE_V2
_Must_inspect_result_ NTSTATUS(NTAPI * PGET_LINK_POSITION_REGISTER)(_In_ PVOID _context, _In_ HANDLE Handle, _Out_ PULONG *Position)
struct _HDAUDIO_CODEC_COMMAND * PHDAUDIO_CODEC_COMMAND
PUNREGISTER_NOTIFICATION_EVENT UnregisterNotificationEvent
VOID(NTAPI * PGET_RESOURCE_INFORMATION)(_In_ PVOID _context, _Out_ PUCHAR CodecAddress, _Out_ PUCHAR FunctionGroupStartNode)
PSET_DMA_ENGINE_STATE SetDmaEngineState
PGET_RESOURCE_INFORMATION GetResourceInformation
struct _HDAUDIO_BUS_INTERFACE_BDL * PHDAUDIO_BUS_INTERFACE_BDL
PINTERFACE_REFERENCE InterfaceReference
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
ULONG InterruptOnCompletion
_Must_inspect_result_ NTSTATUS(NTAPI * PUNREGISTER_NOTIFICATION_EVENT)(_In_ PVOID _context, _In_ HANDLE Handle, _In_ PKEVENT NotificationEvent)
_Must_inspect_result_ NTSTATUS(NTAPI * PREGISTER_NOTIFICATION_EVENT)(_In_ PVOID _context, _In_ HANDLE Handle, _In_ PKEVENT NotificationEvent)
_Must_inspect_result_ NTSTATUS(NTAPI * PFREE_DMA_BUFFER)(_In_ PVOID _context, _In_ HANDLE Handle)
PALLOCATE_DMA_BUFFER AllocateDmaBuffer
ULONG IsUnsolicitedResponse
PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback
PSET_DMA_ENGINE_STATE SetDmaEngineState
PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback
struct _HDAUDIO_CONVERTER_FORMAT * PHDAUDIO_CONVERTER_FORMAT
enum _HDAUDIO_STREAM_STATE * PHDAUDIO_STREAM_STATE
PTRANSFER_CODEC_VERBS TransferCodecVerbs
PGET_DEVICE_INFORMATION GetDeviceInformation
struct _HDAUDIO_BUFFER_DESCRIPTOR HDAUDIO_BUFFER_DESCRIPTOR
PFREE_CONTIGUOUS_DMA_BUFFER FreeContiguousDmaBuffer
HDAUDIO_CODEC_COMMAND Output
PFREE_DMA_ENGINE FreeDmaEngine
PREGISTER_NOTIFICATION_EVENT RegisterNotificationEvent
struct _HDAUDIO_STREAM_FORMAT HDAUDIO_STREAM_FORMAT
void(NTAPI * PHDAUDIO_BDL_ISR)(_In_ VOID *Context, _In_ ULONG InterruptBitMask)
PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback
struct _HDAUDIO_BUFFER_DESCRIPTOR * PHDAUDIO_BUFFER_DESCRIPTOR
PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine
_Must_inspect_result_ NTSTATUS(NTAPI * PFREE_DMA_ENGINE)(_In_ PVOID _context, _In_ HANDLE Handle)
struct _HDAUDIO_CODEC_COMMAND HDAUDIO_CODEC_COMMAND
struct _HDAUDIO_CODEC_TRANSFER HDAUDIO_CODEC_TRANSFER
struct _HDAUDIO_CONVERTER_FORMAT HDAUDIO_CONVERTER_FORMAT
struct _HDAUDIO_BUS_INTERFACE_BDL HDAUDIO_BUS_INTERFACE_BDL
PGET_LINK_POSITION_REGISTER GetLinkPositionRegister
PALLOCATE_CONTIGUOUS_DMA_BUFFER AllocateContiguousDmaBuffer
PTRANSFER_CODEC_VERBS TransferCodecVerbs
PGET_RESOURCE_INFORMATION GetResourceInformation
struct _HDAUDIO_CODEC_COMMAND::@1980::@1982 Verb8
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine
_Must_inspect_result_ NTSTATUS(NTAPI * PALLOCATE_CONTIGUOUS_DMA_BUFFER)(_In_ PVOID _context, _In_ HANDLE Handle, ULONG RequestedBufferSize, _Out_ PVOID *DataBuffer, _Out_ PHDAUDIO_BUFFER_DESCRIPTOR *BdlBuffer)
_Must_inspect_result_ NTSTATUS(NTAPI * PCHANGE_BANDWIDTH_ALLOCATION)(_In_ PVOID _context, _In_ HANDLE Handle, _In_ PHDAUDIO_STREAM_FORMAT StreamFormat, _Out_ PHDAUDIO_CONVERTER_FORMAT ConverterFormat)
_Must_inspect_result_ NTSTATUS(NTAPI * PALLOCATE_CAPTURE_DMA_ENGINE)(_In_ PVOID _context, _In_ UCHAR CodecAddress, _In_ PHDAUDIO_STREAM_FORMAT StreamFormat, _Out_ PHANDLE Handle, _Out_ PHDAUDIO_CONVERTER_FORMAT ConverterFormat)
struct _HDAUDIO_DEVICE_INFORMATION * PHDAUDIO_DEVICE_INFORMATION
PFREE_DMA_ENGINE FreeDmaEngine
#define _Must_inspect_result_
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
PFREE_DMA_ENGINE FreeDmaEngine
PINTERFACE_DEREFERENCE InterfaceDereference
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation
VOID(NTAPI * PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)(HDAUDIO_CODEC_RESPONSE, PVOID)
PREGISTER_EVENT_CALLBACK RegisterEventCallback
_Must_inspect_result_ NTSTATUS(NTAPI * PREGISTER_EVENT_CALLBACK)(_In_ PVOID _context, _In_ PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine, _In_opt_ PVOID Context, _Out_ PUCHAR Tag)
_Must_inspect_result_ NTSTATUS(NTAPI * PALLOCATE_DMA_BUFFER_WITH_NOTIFICATION)(_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)
PGET_WALL_CLOCK_REGISTER GetWallClockRegister
PGET_DEVICE_INFORMATION GetDeviceInformation
PALLOCATE_DMA_BUFFER_WITH_NOTIFICATION AllocateDmaBufferWithNotification
PFREE_DMA_BUFFER_WITH_NOTIFICATION FreeDmaBufferWithNotification
_Must_inspect_result_ NTSTATUS(NTAPI * PFREE_DMA_BUFFER_WITH_NOTIFICATION)(_In_ PVOID _context, _In_ HANDLE Handle, _In_ PMDL BufferMdl, _In_ SIZE_T BufferSize)
PGET_WALL_CLOCK_REGISTER GetWallClockRegister
struct _HDAUDIO_CODEC_RESPONSE::@1984::@1986::@1988::@1990 Unsolicited
PGET_DEVICE_INFORMATION GetDeviceInformation
_Must_inspect_result_ NTSTATUS(NTAPI * PTRANSFER_CODEC_VERBS)(_In_ PVOID _context, _In_ ULONG Count, _Inout_updates_(Count) PHDAUDIO_CODEC_TRANSFER CodecTransfer, _In_opt_ PHDAUDIO_TRANSFER_COMPLETE_CALLBACK Callback, _In_opt_ PVOID Context)
ULONGLONG CompleteResponse
struct _HDAUDIO_CODEC_TRANSFER * PHDAUDIO_CODEC_TRANSFER
_Must_inspect_result_ NTSTATUS(NTAPI * PUNREGISTER_EVENT_CALLBACK)(_In_ PVOID _context, _In_ UCHAR Tag)
PTRANSFER_CODEC_VERBS TransferCodecVerbs
PINTERFACE_DEREFERENCE InterfaceDereference
enum _HDAUDIO_STREAM_STATE HDAUDIO_STREAM_STATE
struct _HDAUDIO_BUS_INTERFACE HDAUDIO_BUS_INTERFACE
_In_ ULONG _In_ ULONG _Inout_updates_(8 *8) ULONG *pul)
struct tagContext Context
struct _HDAUDIO_BUS_INTERFACE_V2 * PHDAUDIO_BUS_INTERFACE_V2
VOID(NTAPI * PHDAUDIO_TRANSFER_COMPLETE_CALLBACK)(HDAUDIO_CODEC_TRANSFER *, PVOID)
VOID(WINAPI * PINTERFACE_REFERENCE)(PVOID Context)
PFREE_DMA_BUFFER FreeDmaBuffer
struct _HDAUDIO_BUS_INTERFACE * PHDAUDIO_BUS_INTERFACE
HDAUDIO_CODEC_RESPONSE Input
_Must_inspect_result_ NTSTATUS(NTAPI * PSETUP_DMA_ENGINE_WITH_BDL)(_In_reads_bytes_(BufferLength) PVOID _context, _In_ HANDLE Handle, _In_ ULONG BufferLength, _In_ ULONG Lvi, _In_ PHDAUDIO_BDL_ISR Isr, _In_ PVOID Context, _Out_ PUCHAR StreamId, _Out_ PULONG FifoSize)
PSETUP_DMA_ENGINE_WITH_BDL SetupDmaEngineWithBdl
#define _In_reads_bytes_(size)