HDAUDIO_BUS_INTERFACE_V2 structure (hdaudio.h)

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.

Syntax

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;

Members

Size

Specifies the size, in bytes, of the HDAUDIO_BUS_INTERFACE_V2 structure.

Version

Specifies the version of the baseline HD Audio DDI.

Context

A pointer to interface-specific context information.

InterfaceReference

A pointer to a driver-supplied routine that increments the reference count for the interface.

InterfaceDereference

A pointer to a driver-supplied routine that decrements the reference count for the interface.

TransferCodecVerbs

A function pointer to the TransferCodecVerbs routine.

AllocateCaptureDmaEngine

A function pointer to the AllocateCaptureDmaEngine routine.

AllocateRenderDmaEngine

A function pointer to the AllocateRenderDmaEngine routine.

ChangeBandwidthAllocation

A function pointer to the ChangeBandwidthAllocation routine.

AllocateDmaBuffer

A function pointer to the AllocateDmaBuffer routine.

FreeDmaBuffer

A function pointer to the FreeDmaBuffer routine.

FreeDmaEngine

A function pointer to the FreeDmaEngine routine.

SetDmaEngineState

A function pointer to the SetDmaEngineState routine.

GetWallClockRegister

A function pointer to the GetWallClockRegister routine.

GetLinkPositionRegister

A function pointer to the GetLinkPositionRegister routine.

RegisterEventCallback

A function pointer to the RegisterEventCallback routine.

UnregisterEventCallback

A function pointer to the UnregisterEventCallback routine.

GetDeviceInformation

A function pointer to the GetDeviceInformation routine.

GetResourceInformation

A function pointer to the GetResourceInformation routine.

AllocateDmaBufferWithNotification

A function pointer to the AllocateDmaBufferWithNotification routine.

FreeDmaBufferWithNotification

A function pointer to the FreeDmaBufferWithNotification routine.

RegisterNotificationEvent

A function pointer to the RegisterNotificationEvent routine.

UnregisterNotificationEvent

A function pointer to the UnregisterNotificationEvent 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.

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.

Requirements

Requirement Value
Minimum supported client Available in Windows Vista and later versions of Windows.
Header hdaudio.h (include Hdaudio.h)

See also

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateDmaBufferWithNotification

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaBufferWithNotification

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

RegisterNotificationEvent

SetDmaEngineState

TransferCodecVerbs

UnregisterEventCallback

UnregisterNotificationEvent