_HDAUDIO_BUS_INTERFACE_BDL structure

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.

Syntax

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;

Members

AllocateCaptureDmaEngine

Function pointer to the AllocateCaptureDmaEngine routine.

AllocateContiguousDmaBuffer

Function pointer to the AllocateContiguousDmaBuffer routine.

AllocateRenderDmaEngine

Function pointer to the AllocateRenderDmaEngine routine.

ChangeBandwidthAllocation

Function pointer to the ChangeBandwidthAllocation routine.

Context

Pointer to interface-specific context information.

FreeContiguousDmaBuffer

Function pointer to the FreeContiguousDmaBuffer routine.

FreeDmaEngine

Function pointer to the FreeDmaEngine routine.

GetDeviceInformation

Function pointer to the GetDeviceInformation routine.

GetLinkPositionRegister

Function pointer to the GetLinkPositionRegister routine.

GetResourceInformation

Function pointer to the GetResourceInformation routine.

GetWallClockRegister

Function pointer to the GetWallClockRegister routine.

InterfaceDereference

Pointer to a driver-supplied routine that decrements the interface's reference count.

InterfaceReference

Pointer to a driver-supplied routine that increments the interface's reference count.

RegisterEventCallback

Function pointer to the RegisterEventCallback routine.

SetDmaEngineState

Function pointer to the SetDmaEngineState routine.

SetupDmaEngineWithBdl

Function pointer to the SetupDmaEngineWithBdl routine.

Size

Specifies the size in bytes of the HDAUDIO_BUS_INTERFACE_BDL structure.

TransferCodecVerbs

Function pointer to the TransferCodecVerbs routine.

UnregisterEventCallback

Function pointer to the UnregisterEventCallback routine.

Version

Specifies the version of the extended HD Audio DDI.

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 structure.

The HDAUDIO_BUS_INTERFACE_BDL and HDAUDIO_BUS_INTERFACE structures are similar but have the following differences:

  • HDAUDIO_BUS_INTERFACE_BDL has three members, AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl, and FreeContiguousDmaBuffer, that are not present in HDAUDIO_BUS_INTERFACE.

  • HDAUDIO_BUS_INTERFACE has two members, AllocateDmaBuffer and FreeDmaBuffer, that are not present in HDAUDIO_BUS_INTERFACE_BDL.

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.

Requirements

   
Header hdaudio.h (include Hdaudio.h)

See Also

ChangeBandwidthAllocation

SetDmaEngineState

TransferCodecVerbs

RegisterEventCallback

GetWallClockRegister

GetLinkPositionRegister

FreeContiguousDmaBuffer

AllocateContiguousDmaBuffer

GetResourceInformation

FreeDmaEngine

HDAUDIO_BUS_INTERFACE

AllocateCaptureDmaEngine

AllocateRenderDmaEngine

UnregisterEventCallback

SetupDmaEngineWithBdl

Send comments about this topic to Microsoft