// hdaudio.h
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;
PSETUP_DMA_ENGINE_WITH_BDL SetupDmaEngineWithBdl;
PFREE_CONTIGUOUS_DMA_BUFFER FreeContiguousDmaBuffer;
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_BDL, *PHDAUDIO_BUS_INTERFACE_BDL;
View the official Windows Driver Kit DDI referenceNo description available.
The HDAUDIO_BUS_INTERFACE_BDL structure specifies the information that a client requires to call the routines in the HDAUDIO_BUS_INTERFACE_BDL version of the HD Audio DDI. Another variant of this DDI is specified by the HDAUDIO_BUS_INTERFACE structure.
SizeSpecifies the size in bytes of the HDAUDIO_BUS_INTERFACE_BDL structure.
VersionSpecifies the version of the extended HD Audio DDI.
ContextPointer to interface-specific context information.
InterfaceReferencePointer to a driver-supplied routine that increments the interface's reference count.
InterfaceDereferencePointer to a driver-supplied routine that decrements the interface's reference count.
TransferCodecVerbsFunction pointer to the TransferCodecVerbs routine.
AllocateCaptureDmaEngineFunction pointer to the AllocateCaptureDmaEngine routine.
AllocateRenderDmaEngineFunction pointer to the AllocateRenderDmaEngine routine.
ChangeBandwidthAllocationFunction pointer to the ChangeBandwidthAllocation routine.
AllocateContiguousDmaBufferFunction pointer to the AllocateContiguousDmaBuffer routine.
SetupDmaEngineWithBdlFunction pointer to the SetupDmaEngineWithBdl routine.
FreeContiguousDmaBufferFunction pointer to the FreeContiguousDmaBuffer routine.
FreeDmaEngineFunction pointer to the FreeDmaEngine routine.
SetDmaEngineStateFunction pointer to the SetDmaEngineState routine.
GetWallClockRegisterFunction pointer to the GetWallClockRegister routine.
GetLinkPositionRegisterFunction pointer to the GetLinkPositionRegister routine.
RegisterEventCallbackFunction pointer to the RegisterEventCallback routine.
UnregisterEventCallbackFunction pointer to the UnregisterEventCallback routine.
GetDeviceInformationFunction pointer to the GetDeviceInformation routine.
GetResourceInformationFunction pointer to the GetResourceInformation 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. Another variant of this DDI is specified by the HDAUDIO_BUS_INTERFACE structure.
The HDAUDIO_BUS_INTERFACE_BDL and HDAUDIO_BUS_INTERFACE structures are similar but have the following differences:
For more information, see Differences Between the HD Audio DDI Versions.
The names and definitions of the first five members (Size, Version, Context, InterfaceReference, and InterfaceDereference) are the same as in the INTERFACE structure. The remaining members are specific to the extended HD Audio DDI and specify function pointers to the routines in the DDI. For more information, see Obtaining an HDAUDIO_BUS_INTERFACE_BDL DDI Object.