[DDK] Bring hdaudio.h to DDK formatting. NFC.

svn path=/trunk/; revision=68278
This commit is contained in:
Amine Khaldi 2015-06-26 16:32:40 +00:00
parent ef406986cb
commit 5703a3911d

View file

@ -6,242 +6,331 @@
#pragma warning(disable:4214) #pragma warning(disable:4214)
#endif #endif
DEFINE_GUID (GUID_HDAUDIO_BUS_INTERFACE, 0xd2eaf88b, 0xab18, 0x41a8, 0xb6, 0x64, 0x8d, 0x59, 0x21, 0x67, 0x67, 0x1b); DEFINE_GUID(GUID_HDAUDIO_BUS_INTERFACE, 0xd2eaf88b, 0xab18, 0x41a8, 0xb6, 0x64, 0x8d, 0x59, 0x21, 0x67, 0x67, 0x1b);
DEFINE_GUID(GUID_HDAUDIO_BUS_INTERFACE_BDL, 0xb4d65397, 0x5634, 0x40b0, 0xb0, 0x68, 0xf5, 0xb9, 0xf8, 0xb9, 0x67, 0xa5); DEFINE_GUID(GUID_HDAUDIO_BUS_INTERFACE_BDL, 0xb4d65397, 0x5634, 0x40b0, 0xb0, 0x68, 0xf5, 0xb9, 0xf8, 0xb9, 0x67, 0xa5);
DEFINE_GUID (GUID_HDAUDIO_BUS_INTERFACE_V2, 0xb52af5fb, 0x424b, 0x4bb9, 0xa1, 0x60, 0x5b, 0x38, 0xbe, 0x94, 0xe5, 0x68); DEFINE_GUID(GUID_HDAUDIO_BUS_INTERFACE_V2, 0xb52af5fb, 0x424b, 0x4bb9, 0xa1, 0x60, 0x5b, 0x38, 0xbe, 0x94, 0xe5, 0x68);
DEFINE_GUID (GUID_HDAUDIO_BUS_CLASS, 0xbbd1a745, 0xadd6, 0x4575, 0x9c, 0x2e, 0x9b, 0x42, 0x8d, 0x1c, 0x32, 0x66); DEFINE_GUID(GUID_HDAUDIO_BUS_CLASS, 0xbbd1a745, 0xadd6, 0x4575, 0x9c, 0x2e, 0x9b, 0x42, 0x8d, 0x1c, 0x32, 0x66);
#ifndef _HDAUDIO_CODEC_TRANSFER_ #ifndef _HDAUDIO_CODEC_TRANSFER_
#define _HDAUDIO_CODEC_TRANSFER_ #define _HDAUDIO_CODEC_TRANSFER_
typedef struct _HDAUDIO_CODEC_COMMAND typedef struct _HDAUDIO_CODEC_COMMAND {
{ union {
union struct {
{ ULONG Data:8;
struct ULONG VerbId:12;
{ ULONG Node:8;
ULONG Data : 8; ULONG CodecAddress:4;
ULONG VerbId : 12;
ULONG Node : 8;
ULONG CodecAddress : 4;
} Verb8; } Verb8;
struct struct {
{ ULONG Data:16;
ULONG Data : 16; ULONG VerbId:4;
ULONG VerbId : 4; ULONG Node:8;
ULONG Node : 8; ULONG CodecAddress:4;
ULONG CodecAddress : 4;
} Verb16; } Verb16;
ULONG Command; ULONG Command;
}; };
} HDAUDIO_CODEC_COMMAND, *PHDAUDIO_CODEC_COMMAND; } HDAUDIO_CODEC_COMMAND, *PHDAUDIO_CODEC_COMMAND;
typedef struct _HDAUDIO_CODEC_RESPONSE typedef struct _HDAUDIO_CODEC_RESPONSE {
{ union {
union struct {
{ union {
struct struct {
{ ULONG Response:26;
union ULONG Tag:6;
{
struct
{
ULONG Response : 26;
ULONG Tag : 6;
} Unsolicited; } Unsolicited;
ULONG Response; ULONG Response;
}; };
ULONG SDataIn : 4; ULONG SDataIn:4;
ULONG IsUnsolicitedResponse : 1; ULONG IsUnsolicitedResponse:1;
ULONG :25; ULONG :25;
ULONG HasFifoOverrun : 1; ULONG HasFifoOverrun:1;
ULONG IsValid : 1; ULONG IsValid:1;
}; };
ULONGLONG CompleteResponse; ULONGLONG CompleteResponse;
}; };
} HDAUDIO_CODEC_RESPONSE, *PHDAUDIO_CODEC_RESPONSE; } HDAUDIO_CODEC_RESPONSE, *PHDAUDIO_CODEC_RESPONSE;
typedef struct _HDAUDIO_CODEC_TRANSFER typedef struct _HDAUDIO_CODEC_TRANSFER {
{ HDAUDIO_CODEC_COMMAND Output;
HDAUDIO_CODEC_COMMAND Output;
HDAUDIO_CODEC_RESPONSE Input; HDAUDIO_CODEC_RESPONSE Input;
} HDAUDIO_CODEC_TRANSFER, *PHDAUDIO_CODEC_TRANSFER; } HDAUDIO_CODEC_TRANSFER, *PHDAUDIO_CODEC_TRANSFER;
#endif
typedef struct _HDAUDIO_STREAM_FORMAT #endif /* _HDAUDIO_CODEC_TRANSFER_ */
{
ULONG SampleRate; typedef struct _HDAUDIO_STREAM_FORMAT {
USHORT ValidBitsPerSample; ULONG SampleRate;
USHORT ContainerSize; USHORT ValidBitsPerSample;
USHORT NumberOfChannels; USHORT ContainerSize;
USHORT NumberOfChannels;
} HDAUDIO_STREAM_FORMAT, *PHDAUDIO_STREAM_FORMAT; } HDAUDIO_STREAM_FORMAT, *PHDAUDIO_STREAM_FORMAT;
typedef struct _HDAUDIO_CONVERTER_FORMAT typedef struct _HDAUDIO_CONVERTER_FORMAT {
{ union {
union struct {
{ USHORT NumberOfChannels:4;
struct USHORT BitsPerSample:3;
{ USHORT :1;
USHORT NumberOfChannels : 4; USHORT SampleRate:7;
USHORT BitsPerSample : 3; USHORT StreamType:1;
USHORT : 1;
USHORT SampleRate : 7;
USHORT StreamType : 1;
}; };
USHORT ConverterFormat; USHORT ConverterFormat;
}; };
} HDAUDIO_CONVERTER_FORMAT, *PHDAUDIO_CONVERTER_FORMAT; } HDAUDIO_CONVERTER_FORMAT, *PHDAUDIO_CONVERTER_FORMAT;
typedef enum _HDAUDIO_STREAM_STATE typedef enum _HDAUDIO_STREAM_STATE {
{
ResetState = 0, ResetState = 0,
StopState = 1, StopState = 1,
PauseState = 1, PauseState = 1,
RunState = 2 RunState = 2
} HDAUDIO_STREAM_STATE, *PHDAUDIO_STREAM_STATE; } HDAUDIO_STREAM_STATE, *PHDAUDIO_STREAM_STATE;
typedef VOID (NTAPI *PHDAUDIO_TRANSFER_COMPLETE_CALLBACK)(HDAUDIO_CODEC_TRANSFER *, PVOID); typedef VOID
(NTAPI *PHDAUDIO_TRANSFER_COMPLETE_CALLBACK)(
HDAUDIO_CODEC_TRANSFER *,
PVOID);
typedef VOID (NTAPI *PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)(HDAUDIO_CODEC_RESPONSE, PVOID); typedef VOID
(NTAPI *PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)(
HDAUDIO_CODEC_RESPONSE,
PVOID);
typedef struct _HDAUDIO_DEVICE_INFORMATION typedef struct _HDAUDIO_DEVICE_INFORMATION {
{ USHORT Size; /* size of this structure */
USHORT Size; // size of this structure USHORT DeviceVersion; /* maj.min (maj is high byte, min is low byte) */
USHORT DeviceVersion; // maj.min (maj is high byte, min is low byte) USHORT DriverVersion; /* maj.min (maj is high byte, min is low byte) */
USHORT DriverVersion; // maj.min (maj is high byte, min is low byte) USHORT CodecsDetected; /* mask of codecs present. Bit number == SDI line number */
USHORT CodecsDetected; // mask of codecs present. Bit number == SDI line number BOOLEAN IsStripingSupported; /* TRUE if striping (2 SDO lines) is supported */
BOOLEAN IsStripingSupported; // TRUE if striping (2 SDO lines) is supported
} HDAUDIO_DEVICE_INFORMATION, *PHDAUDIO_DEVICE_INFORMATION; } HDAUDIO_DEVICE_INFORMATION, *PHDAUDIO_DEVICE_INFORMATION;
typedef struct _HDAUDIO_BUFFER_DESCRIPTOR typedef struct _HDAUDIO_BUFFER_DESCRIPTOR {
{ PHYSICAL_ADDRESS Address;
PHYSICAL_ADDRESS Address; ULONG Length;
ULONG Length; ULONG InterruptOnCompletion;
ULONG InterruptOnCompletion;
} HDAUDIO_BUFFER_DESCRIPTOR, *PHDAUDIO_BUFFER_DESCRIPTOR; } HDAUDIO_BUFFER_DESCRIPTOR, *PHDAUDIO_BUFFER_DESCRIPTOR;
typedef NTSTATUS
(NTAPI *PTRANSFER_CODEC_VERBS)(
IN PVOID _context,
IN ULONG Count,
IN OUT PHDAUDIO_CODEC_TRANSFER CodecTransfer,
IN PHDAUDIO_TRANSFER_COMPLETE_CALLBACK Callback,
IN PVOID Context);
typedef NTSTATUS (NTAPI *PTRANSFER_CODEC_VERBS) (IN PVOID _context, IN ULONG Count, IN OUT PHDAUDIO_CODEC_TRANSFER CodecTransfer, IN PHDAUDIO_TRANSFER_COMPLETE_CALLBACK Callback, IN PVOID Context); typedef NTSTATUS
typedef 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); (NTAPI *PALLOCATE_CAPTURE_DMA_ENGINE)(
typedef 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); IN PVOID _context,
typedef NTSTATUS (NTAPI *PCHANGE_BANDWIDTH_ALLOCATION) (IN PVOID _context, IN HANDLE Handle, IN PHDAUDIO_STREAM_FORMAT StreamFormat, OUT PHDAUDIO_CONVERTER_FORMAT ConverterFormat); IN UCHAR CodecAddress,
typedef 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); IN PHDAUDIO_STREAM_FORMAT StreamFormat,
typedef NTSTATUS (NTAPI *PFREE_DMA_BUFFER) (IN PVOID _context, IN HANDLE Handle); OUT PHANDLE Handle,
typedef NTSTATUS (NTAPI *PFREE_DMA_ENGINE) (IN PVOID _context, IN HANDLE Handle); OUT PHDAUDIO_CONVERTER_FORMAT ConverterFormat);
typedef NTSTATUS (NTAPI *PSET_DMA_ENGINE_STATE) (IN PVOID _context, IN HDAUDIO_STREAM_STATE StreamState, IN ULONG NumberOfHandles, IN PHANDLE Handles);
typedef VOID (NTAPI *PGET_WALL_CLOCK_REGISTER) (IN PVOID _context, OUT PULONG *Wallclock);
typedef NTSTATUS (NTAPI *PGET_LINK_POSITION_REGISTER) (IN PVOID _context, IN HANDLE Handle, OUT PULONG *Position);
typedef NTSTATUS (NTAPI *PREGISTER_EVENT_CALLBACK) (IN PVOID _context, IN PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine, IN PVOID Context, OUT PUCHAR Tag);
typedef NTSTATUS (NTAPI *PUNREGISTER_EVENT_CALLBACK) (IN PVOID _context, IN UCHAR Tag);
typedef NTSTATUS (NTAPI *PGET_DEVICE_INFORMATION) (IN PVOID _context, IN OUT PHDAUDIO_DEVICE_INFORMATION DeviceInformation);
typedef VOID (NTAPI *PGET_RESOURCE_INFORMATION) (IN PVOID _context, OUT PUCHAR CodecAddress, OUT PUCHAR FunctionGroupStartNode);
typedef struct _HDAUDIO_BUS_INTERFACE typedef NTSTATUS
{ (NTAPI *PALLOCATE_RENDER_DMA_ENGINE)(
USHORT Size; IN PVOID _context,
USHORT Version; IN PHDAUDIO_STREAM_FORMAT StreamFormat,
PVOID Context; IN BOOLEAN Stripe,
PINTERFACE_REFERENCE InterfaceReference; OUT PHANDLE Handle,
PINTERFACE_DEREFERENCE InterfaceDereference; OUT PHDAUDIO_CONVERTER_FORMAT ConverterFormat);
PTRANSFER_CODEC_VERBS TransferCodecVerbs; typedef NTSTATUS
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine; (NTAPI *PCHANGE_BANDWIDTH_ALLOCATION)(
PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine; IN PVOID _context,
PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation; IN HANDLE Handle,
PALLOCATE_DMA_BUFFER AllocateDmaBuffer; IN PHDAUDIO_STREAM_FORMAT StreamFormat,
PFREE_DMA_BUFFER FreeDmaBuffer; OUT PHDAUDIO_CONVERTER_FORMAT ConverterFormat);
PFREE_DMA_ENGINE FreeDmaEngine;
PSET_DMA_ENGINE_STATE SetDmaEngineState; typedef NTSTATUS
PGET_WALL_CLOCK_REGISTER GetWallClockRegister; (NTAPI *PALLOCATE_DMA_BUFFER)(
PGET_LINK_POSITION_REGISTER GetLinkPositionRegister; IN PVOID _context,
PREGISTER_EVENT_CALLBACK RegisterEventCallback; IN HANDLE Handle,
PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback; IN SIZE_T RequestedBufferSize,
PGET_DEVICE_INFORMATION GetDeviceInformation; OUT PMDL *BufferMdl,
PGET_RESOURCE_INFORMATION GetResourceInformation; OUT PSIZE_T AllocatedBufferSize,
OUT PUCHAR StreamId,
OUT PULONG FifoSize);
typedef NTSTATUS
(NTAPI *PFREE_DMA_BUFFER)(
IN PVOID _context,
IN HANDLE Handle);
typedef NTSTATUS
(NTAPI *PFREE_DMA_ENGINE)(
IN PVOID _context,
IN HANDLE Handle);
typedef NTSTATUS
(NTAPI *PSET_DMA_ENGINE_STATE)(
IN PVOID _context,
IN HDAUDIO_STREAM_STATE StreamState,
IN ULONG NumberOfHandles,
IN PHANDLE Handles);
typedef VOID
(NTAPI *PGET_WALL_CLOCK_REGISTER)(
IN PVOID _context,
OUT PULONG *Wallclock);
typedef NTSTATUS
(NTAPI *PGET_LINK_POSITION_REGISTER)(
IN PVOID _context,
IN HANDLE Handle,
OUT PULONG *Position);
typedef NTSTATUS
(NTAPI *PREGISTER_EVENT_CALLBACK)(
IN PVOID _context,
IN PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine,
IN PVOID Context,
OUT PUCHAR Tag);
typedef NTSTATUS
(NTAPI *PUNREGISTER_EVENT_CALLBACK)(
IN PVOID _context,
IN UCHAR Tag);
typedef NTSTATUS
(NTAPI *PGET_DEVICE_INFORMATION)(
IN PVOID _context,
IN OUT PHDAUDIO_DEVICE_INFORMATION DeviceInformation);
typedef VOID
(NTAPI *PGET_RESOURCE_INFORMATION)(
IN PVOID _context,
OUT PUCHAR CodecAddress,
OUT PUCHAR FunctionGroupStartNode);
typedef struct _HDAUDIO_BUS_INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PTRANSFER_CODEC_VERBS TransferCodecVerbs;
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine;
PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine;
PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation;
PALLOCATE_DMA_BUFFER AllocateDmaBuffer;
PFREE_DMA_BUFFER FreeDmaBuffer;
PFREE_DMA_ENGINE FreeDmaEngine;
PSET_DMA_ENGINE_STATE SetDmaEngineState;
PGET_WALL_CLOCK_REGISTER GetWallClockRegister;
PGET_LINK_POSITION_REGISTER GetLinkPositionRegister;
PREGISTER_EVENT_CALLBACK RegisterEventCallback;
PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback;
PGET_DEVICE_INFORMATION GetDeviceInformation;
PGET_RESOURCE_INFORMATION GetResourceInformation;
} HDAUDIO_BUS_INTERFACE, *PHDAUDIO_BUS_INTERFACE; } HDAUDIO_BUS_INTERFACE, *PHDAUDIO_BUS_INTERFACE;
typedef void (NTAPI *PHDAUDIO_BDL_ISR) (IN VOID *Context, IN ULONG InterruptBitMask); typedef void
(NTAPI *PHDAUDIO_BDL_ISR)(
IN VOID *Context,
IN ULONG InterruptBitMask);
typedef NTSTATUS (NTAPI *PALLOCATE_CONTIGUOUS_DMA_BUFFER) (IN PVOID _context, IN HANDLE Handle, typedef NTSTATUS
ULONG RequestedBufferSize, OUT PVOID *DataBuffer, OUT PHDAUDIO_BUFFER_DESCRIPTOR *BdlBuffer); (NTAPI *PALLOCATE_CONTIGUOUS_DMA_BUFFER)(
typedef NTSTATUS (NTAPI *PFREE_CONTIGUOUS_DMA_BUFFER) (IN PVOID _context, IN HANDLE Handle); IN PVOID _context,
typedef NTSTATUS (NTAPI *PSETUP_DMA_ENGINE_WITH_BDL) (IN PVOID _context, IN HANDLE Handle, IN ULONG BufferLength, IN HANDLE Handle,
IN ULONG Lvi, IN PHDAUDIO_BDL_ISR Isr, IN PVOID Context, OUT PUCHAR StreamId, OUT PULONG FifoSize); ULONG RequestedBufferSize,
OUT PVOID *DataBuffer,
OUT PHDAUDIO_BUFFER_DESCRIPTOR *BdlBuffer);
typedef struct _HDAUDIO_BUS_INTERFACE_BDL typedef NTSTATUS
{ (NTAPI *PFREE_CONTIGUOUS_DMA_BUFFER)(
USHORT Size; IN PVOID _context,
USHORT Version; IN HANDLE Handle);
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PTRANSFER_CODEC_VERBS TransferCodecVerbs; typedef NTSTATUS
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine; (NTAPI *PSETUP_DMA_ENGINE_WITH_BDL)(
PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine; IN PVOID _context,
PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation; IN HANDLE Handle,
IN ULONG BufferLength,
IN ULONG Lvi,
IN PHDAUDIO_BDL_ISR Isr,
IN PVOID Context,
OUT PUCHAR StreamId,
OUT PULONG FifoSize);
typedef struct _HDAUDIO_BUS_INTERFACE_BDL {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PTRANSFER_CODEC_VERBS TransferCodecVerbs;
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine;
PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine;
PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation;
PALLOCATE_CONTIGUOUS_DMA_BUFFER AllocateContiguousDmaBuffer; PALLOCATE_CONTIGUOUS_DMA_BUFFER AllocateContiguousDmaBuffer;
PSETUP_DMA_ENGINE_WITH_BDL SetupDmaEngineWithBdl; PSETUP_DMA_ENGINE_WITH_BDL SetupDmaEngineWithBdl;
PFREE_CONTIGUOUS_DMA_BUFFER FreeContiguousDmaBuffer; PFREE_CONTIGUOUS_DMA_BUFFER FreeContiguousDmaBuffer;
PFREE_DMA_ENGINE FreeDmaEngine; PFREE_DMA_ENGINE FreeDmaEngine;
PSET_DMA_ENGINE_STATE SetDmaEngineState; PSET_DMA_ENGINE_STATE SetDmaEngineState;
PGET_WALL_CLOCK_REGISTER GetWallClockRegister; PGET_WALL_CLOCK_REGISTER GetWallClockRegister;
PGET_LINK_POSITION_REGISTER GetLinkPositionRegister; PGET_LINK_POSITION_REGISTER GetLinkPositionRegister;
PREGISTER_EVENT_CALLBACK RegisterEventCallback; PREGISTER_EVENT_CALLBACK RegisterEventCallback;
PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback; PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback;
PGET_DEVICE_INFORMATION GetDeviceInformation; PGET_DEVICE_INFORMATION GetDeviceInformation;
PGET_RESOURCE_INFORMATION GetResourceInformation; PGET_RESOURCE_INFORMATION GetResourceInformation;
} HDAUDIO_BUS_INTERFACE_BDL, *PHDAUDIO_BUS_INTERFACE_BDL; } HDAUDIO_BUS_INTERFACE_BDL, *PHDAUDIO_BUS_INTERFACE_BDL;
typedef NTSTATUS (NTAPI *PALLOCATE_DMA_BUFFER_WITH_NOTIFICATION) (IN PVOID _context, typedef NTSTATUS
IN HANDLE Handle, (NTAPI *PALLOCATE_DMA_BUFFER_WITH_NOTIFICATION)(
IN ULONG NotificationCount, IN PVOID _context,
IN SIZE_T RequestedBufferSize, IN HANDLE Handle,
OUT PMDL *BufferMdl, IN ULONG NotificationCount,
OUT PSIZE_T AllocatedBufferSize, IN SIZE_T RequestedBufferSize,
OUT PSIZE_T OffsetFromFirstPage, OUT PMDL *BufferMdl,
OUT PUCHAR StreamId, OUT PSIZE_T AllocatedBufferSize,
OUT PULONG FifoSize); OUT PSIZE_T OffsetFromFirstPage,
OUT PUCHAR StreamId,
OUT PULONG FifoSize);
typedef NTSTATUS (NTAPI *PFREE_DMA_BUFFER_WITH_NOTIFICATION) (IN PVOID _context, typedef NTSTATUS
IN HANDLE Handle, (NTAPI *PFREE_DMA_BUFFER_WITH_NOTIFICATION)(
IN PMDL BufferMdl, IN PVOID _context,
IN SIZE_T BufferSize); IN HANDLE Handle,
IN PMDL BufferMdl,
IN SIZE_T BufferSize);
typedef NTSTATUS (NTAPI *PREGISTER_NOTIFICATION_EVENT) (IN PVOID _context, typedef NTSTATUS
IN HANDLE Handle, (NTAPI *PREGISTER_NOTIFICATION_EVENT)(
IN PKEVENT NotificationEvent); IN PVOID _context,
IN HANDLE Handle,
IN PKEVENT NotificationEvent);
typedef NTSTATUS (NTAPI *PUNREGISTER_NOTIFICATION_EVENT) (IN PVOID _context, typedef NTSTATUS
IN HANDLE Handle, (NTAPI *PUNREGISTER_NOTIFICATION_EVENT)(
IN PKEVENT NotificationEvent); IN PVOID _context,
IN HANDLE Handle,
IN PKEVENT NotificationEvent);
typedef struct _HDAUDIO_BUS_INTERFACE_V2 typedef struct _HDAUDIO_BUS_INTERFACE_V2 {
{ USHORT Size;
USHORT Size; USHORT Version;
USHORT Version; PVOID Context;
PVOID Context; PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference;
PINTERFACE_DEREFERENCE InterfaceDereference; PTRANSFER_CODEC_VERBS TransferCodecVerbs;
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine;
PTRANSFER_CODEC_VERBS TransferCodecVerbs; PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine;
PALLOCATE_CAPTURE_DMA_ENGINE AllocateCaptureDmaEngine; PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation;
PALLOCATE_RENDER_DMA_ENGINE AllocateRenderDmaEngine; PALLOCATE_DMA_BUFFER AllocateDmaBuffer;
PCHANGE_BANDWIDTH_ALLOCATION ChangeBandwidthAllocation; PFREE_DMA_BUFFER FreeDmaBuffer;
PALLOCATE_DMA_BUFFER AllocateDmaBuffer; PFREE_DMA_ENGINE FreeDmaEngine;
PFREE_DMA_BUFFER FreeDmaBuffer; PSET_DMA_ENGINE_STATE SetDmaEngineState;
PFREE_DMA_ENGINE FreeDmaEngine; PGET_WALL_CLOCK_REGISTER GetWallClockRegister;
PSET_DMA_ENGINE_STATE SetDmaEngineState; PGET_LINK_POSITION_REGISTER GetLinkPositionRegister;
PGET_WALL_CLOCK_REGISTER GetWallClockRegister; PREGISTER_EVENT_CALLBACK RegisterEventCallback;
PGET_LINK_POSITION_REGISTER GetLinkPositionRegister; PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback;
PREGISTER_EVENT_CALLBACK RegisterEventCallback; PGET_DEVICE_INFORMATION GetDeviceInformation;
PUNREGISTER_EVENT_CALLBACK UnregisterEventCallback; PGET_RESOURCE_INFORMATION GetResourceInformation;
PGET_DEVICE_INFORMATION GetDeviceInformation; PALLOCATE_DMA_BUFFER_WITH_NOTIFICATION AllocateDmaBufferWithNotification;
PGET_RESOURCE_INFORMATION GetResourceInformation; PFREE_DMA_BUFFER_WITH_NOTIFICATION FreeDmaBufferWithNotification;
PALLOCATE_DMA_BUFFER_WITH_NOTIFICATION AllocateDmaBufferWithNotification; PREGISTER_NOTIFICATION_EVENT RegisterNotificationEvent;
PFREE_DMA_BUFFER_WITH_NOTIFICATION FreeDmaBufferWithNotification; PUNREGISTER_NOTIFICATION_EVENT UnregisterNotificationEvent;
PREGISTER_NOTIFICATION_EVENT RegisterNotificationEvent;
PUNREGISTER_NOTIFICATION_EVENT UnregisterNotificationEvent;
} HDAUDIO_BUS_INTERFACE_V2, *PHDAUDIO_BUS_INTERFACE_V2; } HDAUDIO_BUS_INTERFACE_V2, *PHDAUDIO_BUS_INTERFACE_V2;
#ifdef _MSC_VER #ifdef _MSC_VER
@ -249,5 +338,4 @@ typedef struct _HDAUDIO_BUS_INTERFACE_V2
#pragma warning(default:4214) #pragma warning(default:4214)
#endif #endif
#endif // _HDAUDIO_H_ #endif /* _HDAUDIO_H_ */