HD Audio DDI Programming Guidelines

This section presents programming guidelines for using the HD Audio DDI versions (as defined by the HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 and HDAUDIO_BUS_INTERFACE_BDL structures) to control audio and modem codecs that are connected to an HD Audio bus interface controller.

The HD Audio bus driver exposes one or both versions of the HD Audio DDI to its children, which are kernel-mode function drivers for the audio and modem codecs. (One of these children might be the UAA HD Audio class driver.) These drivers call the routines in the DDIs to access the hardware capabilities of the HD Audio controller device.

This section includes:

Differences Between the HD Audio DDI Versions

Synchronous and Asynchronous Codec Commands

Wall Clock and Link Position Registers

Hardware Resource Management

Synchronizing Two or More Streams

Wake Enable

Data Copying and Caching Policy

Querying for an HD Audio DDI