// hdaudio.h
typedef struct _HDAUDIO_BUS_INTERFACE_V2 {
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;
PALLOCATE_DMA_BUFFER_WITH_NOTIFICATION AllocateDmaBufferWithNotification;
PFREE_DMA_BUFFER_WITH_NOTIFICATION FreeDmaBufferWithNotification;
PREGISTER_NOTIFICATION_EVENT RegisterNotificationEvent;
PUNREGISTER_NOTIFICATION_EVENT UnregisterNotificationEvent;
} HDAUDIO_BUS_INTERFACE_V2, *PHDAUDIO_BUS_INTERFACE_V2;
View the official Windows Driver Kit DDI referenceNo description available.
The HDAUDIO_BUS_INTERFACE_V2 structure specifies the information that a client requires to call the routines in the HDAUDIO_BUS_INTERFACE_V2 version of the HD Audio DDI. The interface represented by this structure provides all the functionality of HDAUDIO_BUS_INTERFACE and can also support flexible DMA-driven event notification.
SizeSpecifies the size, in bytes, of the HDAUDIO_BUS_INTERFACE_V2 structure.
VersionSpecifies the version of the baseline HD Audio DDI.
ContextA pointer to interface-specific context information.
InterfaceReferenceA pointer to a driver-supplied routine that increments the reference count for the interface.
InterfaceDereferenceA pointer to a driver-supplied routine that decrements the reference count for the interface.
TransferCodecVerbsA function pointer to the TransferCodecVerbs routine.
AllocateCaptureDmaEngineA function pointer to the AllocateCaptureDmaEngine routine.
AllocateRenderDmaEngineA function pointer to the AllocateRenderDmaEngine routine.
ChangeBandwidthAllocationA function pointer to the ChangeBandwidthAllocation routine.
AllocateDmaBufferA function pointer to the AllocateDmaBuffer routine.
FreeDmaBufferA function pointer to the FreeDmaBuffer routine.
FreeDmaEngineA function pointer to the FreeDmaEngine routine.
SetDmaEngineStateA function pointer to the SetDmaEngineState routine.
GetWallClockRegisterA function pointer to the GetWallClockRegister routine.
GetLinkPositionRegisterA function pointer to the GetLinkPositionRegister routine.
RegisterEventCallbackA function pointer to the RegisterEventCallback routine.
UnregisterEventCallbackA function pointer to the UnregisterEventCallback routine.
GetDeviceInformationA function pointer to the GetDeviceInformation routine.
GetResourceInformationA function pointer to the GetResourceInformation routine.
AllocateDmaBufferWithNotificationA function pointer to the AllocateDmaBufferWithNotification routine.
FreeDmaBufferWithNotificationA function pointer to the FreeDmaBufferWithNotification routine.
RegisterNotificationEventA function pointer to the RegisterNotificationEvent routine.
UnregisterNotificationEventA function pointer to the UnregisterNotificationEvent routine.
The IRP_MN_QUERY_INTERFACE IOCTL uses this structure to provide interface information to a client that is querying the HD Audio bus driver for the HD Audio DDI.
The names and definitions of the first five members of the HDAUDIO_BUS_INTERFACE_V2 structure (Size, Version, Context, InterfaceReference, and InterfaceDereference) are the same as in the INTERFACE structure. The remaining members are specific to the baseline HD Audio DDI and specify function pointers to the routines in the DDI.
AllocateDmaBufferWithNotification