HDAUDIO_BUS_INTERFACE structure (hdaudio.h)
The HDAUDIO_BUS_INTERFACE structure specifies the information that a client requires to call the routines in the HDAUDIO_BUS_INTERFACE version of the HD Audio DDI. Another variant of this DDI is specified by the HDAUDIO_BUS_INTERFACE_BDL structure.
Syntax
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;
Members
Size
Specifies the size in bytes of the HDAUDIO_BUS_INTERFACE structure.
Version
Specifies the version of the baseline HD Audio DDI.
Context
Pointer to interface-specific context information.
InterfaceReference
Pointer to a driver-supplied routine that increments the interface's reference count.
InterfaceDereference
Pointer to a driver-supplied routine that decrements the interface's reference count.
TransferCodecVerbs
Function pointer to the TransferCodecVerbs routine.
AllocateCaptureDmaEngine
Function pointer to the AllocateCaptureDmaEngine routine.
AllocateRenderDmaEngine
Function pointer to the AllocateRenderDmaEngine routine.
ChangeBandwidthAllocation
Function pointer to the ChangeBandwidthAllocation routine.
AllocateDmaBuffer
Function pointer to the AllocateDmaBuffer routine.
FreeDmaBuffer
Function pointer to the FreeDmaBuffer routine.
FreeDmaEngine
Function pointer to the FreeDmaEngine routine.
SetDmaEngineState
Function pointer to the SetDmaEngineState routine.
GetWallClockRegister
Function pointer to the GetWallClockRegister routine.
GetLinkPositionRegister
Function pointer to the GetLinkPositionRegister routine.
RegisterEventCallback
Function pointer to the RegisterEventCallback routine.
UnregisterEventCallback
Function pointer to the UnregisterEventCallback routine.
GetDeviceInformation
Function pointer to the GetDeviceInformation routine.
GetResourceInformation
Function pointer to the GetResourceInformation routine.
Remarks
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_BDL structure.
The HDAUDIO_BUS_INTERFACE and HDAUDIO_BUS_INTERFACE_BDL structures are similar but have the following differences:
- HDAUDIO_BUS_INTERFACE has two members, AllocateDmaBuffer and FreeDmaBuffer, that are not present in HDAUDIO_BUS_INTERFACE_BDL.
- HDAUDIO_BUS_INTERFACE_BDL has three members, AllocateContiguousDmaBuffer, FreeContiguousDmaBuffer, and SetupDmaEngineWithBdl, that are not present in HDAUDIO_BUS_INTERFACE.
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 baseline HD Audio DDI and specify function pointers to the routines in the DDI. For more information, see Obtaining an HDAUDIO_BUS_INTERFACE DDI Object.
Requirements
Requirement | Value |
---|---|
Header | hdaudio.h (include Hdaudio.h) |