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:

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 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)

See also

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

HDAUDIO_BUS_INTERFACE_BDL

RegisterEventCallback

SetDmaEngineState

TransferCodecVerbs

UnregisterEventCallback