A2DP Audio Driver
Collapse the table of content
Expand the table of content

A2DP Audio Driver (Windows Embedded CE 6.0)


The A2DP Audio Driver implemented in Bta2dp.dll, is an audio stream driver and is responsible for setting up the audio payload and sending it to the underlying Audio/Video Distribution Transport Protocol (AVDTP) layer.

You can call the waveOutGetDevCaps function to identify the A2DP audio driver. The pwoc parameter points to the WAVEOUTCAPS structure that stores information about the audio-output device driver. On return, WAVEOUTCAPS is populated and the szPname member is set to "Bluetooth Advanced Audio Output".

The A2DP Audio Driver performs the following tasks:

  • Determines the device to send the audio to by enumerating the registry.
    When a new audio stream is opened, the audio driver checks the HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\A2DP\Devices registry key to determine the device to send the stream. This key is populated after the current device discovers Bluetooth devices in range that support the A2DP service. Sub keys are added under the Devices key for each device that is found. The keys are added in the same order they are found.
    The A2DP Audio Driver attempts to connect to the device listed under the Devices\1 sub key, followed by Devices\2 and so on up to four devices. The timeout value for each connection is controlled through the PageTimeout registry setting. For more information, see Audio Gateway Registry Settings.
    The audio driver also controls the priority of the incoming connections. If an incoming connection is established with the local device, the priority of the peer device is automatically raised to the highest priority.
  • Calls the SBC codec module (Sbc.dll) for encoding and decoding the payload.
    The A2DP Audio Driver calls the SBC codec by using standard ACM calls. This allows the codec to be extended to support other codecs. To enhance the performance, the codec module is loaded into the process space of the audio driver.
  • Passes the payload to the AVDTP layer, which implements transport services and transfers the stream to the peer device through the lower layers of the Bluetooth stack.

Community Additions

© 2016 Microsoft