Windows Audio Architecture

This topic provided a high level summary of the Windows 10 audio architecture.

Windows 10 Audio Stack Diagram

This diagram provides a summary of the major elements of the Windows 10 audio stack.

windows 10 audio stack diagram showing apps, audio engine, drivers and hardware

APIs

Top level APIs

The top level APIs are used for application development. These APIs are in currently in use and supported.

These older APIs are deprecated.

Low level APIs

These lower level APIs are recommended for audio streaming.

  • WASAPI (High performance, but more complicated)
  • IXAudio2 (Typically used for games)
  • MIDI

This lower level API is recommended for enumeration.

These APIs are not recommended for Windows applications.

Audio Engine

The audio engine consists of two related components, the Audio Device Graph (audiodg.exe), which loads the Audio Engine (audioeng.dll).

The audio engine:

Audio Service (audiosrv.dll)

The audio service:

  • Is used to setup and control audio streams.
  • Implements Windows policies for background audio playback, ducking, etc.

Audio Endpoint Builder (audioendpointbuilder.exe)

The Audio Endpoint Builder (audioendpointbuilder.exe):

  • Is used to discover new audio devices and create software audio endpoints. For more information about the algorithm that is used, see Audio Endpoint Builder Algorithm.

Audio Drivers

Audio drivers:

  • Follow the port-miniport model. For more information, see WDM Audio Terminology and Developing a WaveRT Miniport Driver.
  • Allow the audio stack to render and capture audio from several audio devices, including: integrated speakers and microphones, headsets/headphones, USB devices, Bluetooth devices, HDMI, etc.
  • The port-minport model corresponds to the Advanced Linux Sound Architecture ALSA
  • For information on sample driver code, see Sample Audio Drivers.

Hardware

The audio hardware that is present on any give device varies but can include:

  • Audio Codec
  • DSP (optional)
  • Integrated speakers, microphone, etc
  • External devices: USB audio devices, Bluetooth audio devices, HDMI audio, etc.
  • Signal processing can also be implemented in the H/W (e.g. the codec or the DSP), instead of or in addition to the APOs.