Freigeben über


A2DP-Offload des Audio-Sidebands

In diesem Thema wird der A2DP-Offload des Audio-Sidebands beschrieben, das ab Windows 11, Build 10.0.22000 für Bluetooth verfügbar ist.

Das Hauptziel des A2DP-Offloads des Audio-Sidebands besteht darin, den Stromverbrauch zu reduzieren, z. B. bei der Musikwiedergabe.

In diesem Dokument wird davon ausgegangen, dass Sie mit der vorhandenen HF-Sidebandlösung vertraut sind. Siehe Richtlinien zur Bluetooth-HFP-Umgehung für Audiotreiber und die A2DP Bluetooth-Spezifikationen im Abschnitt Siehe auch dieses Themas.

Design der Sidebandarchitektur

Der A2DP-Offload baut auf vorhandenen bewährten Designs auf, um den Stromverbrauch während der Wiedergabe linearer Audioinhalte über integrierte (eingebaute) Lautsprecher oder angeschlossene analoge Kopfhörer zu reduzieren. Kurz gesagt, diese Designs leiten große Mengen an Audiodaten (in der Größenordnung von einer Sekunde) über einen herstellerspezifischen Audiotreiber an einen Audio-DSP weiter. Die Hauptprozessoren und die meisten anderen Schaltkreise schalten auf einen niedrigen Stromverbrauch um, während der Audio-DSP die gebündelten Audiodaten über die eingebauten Lautsprecher ausgibt. Wenn die Audiodaten fast aufgebraucht sind, löst der DSP eine Unterbrechung für den Audiotreiber aus, die dem Betriebssystem signalisiert, weitere Audiodaten über den Audiotreiber an den DSP zu senden.

Hellgraue Komponenten im folgenden Diagramm werden vom IHV bereitgestellt.

Bluetooth-Audiotreiberstapel mit einem IHV-Treiber mit Sideband-DDI-IOCTLs, einem Bluetooth Core und einem optionalen Transporttreiber mit einem DSP- und Bluetooth-Controller am unteren Rand des Stapels

Der A2DP-Offload des Audio-Sidebands baut auch auf einem gemeinsamen Design für den Bluetooth SCO-Audiopfad auf, bei dem derselbe Audio-DSP direkt mit dem Bluetooth-Controller verbunden ist.

Diese Verbindung ist oft eine I2S- oder PCM-Schnittstelle, kann aber auch ein umfangreicherer, komplexerer Bus wie SLIMbus sein. Microsoft bezeichnet diese Architektur als Sideband-Audio, was die Tatsache widerspiegelt, dass Audioübertragungen an den Bluetooth-Controller (oder einen anderen) Controller über einen alternativen Pfad statt über die normale Controllerschnittstelle (die „HCI“) übertragen werden. In diesem Fall überträgt der Audiotreiber die Audiodaten vom Betriebssystem an Audio-DSP, der Audio-DSP überträgt die Daten über die Sideband-Verbindung an den Hardwarebuscontroller, und der Controller überträgt die Audiodaten an das verbundene Gerät. (Bei bidirektionalem Audio tritt auch die umgekehrte Richtung auf.) Während mehr Komponenten beteiligt sind, hat dies möglicherweise Vorteile gegenüber der normalen Controllerschnittstelle. In einigen Anwendungsfällen (hauptsächlich Mobilfunkanrufe) wird der gesamte End-to-End-Audiosignalpfad von der Firmware verarbeitet, die von den Hauptprozessoren entladen wird. Es kann auch eine bessere Schnittstelle für die Echtzeit-/isochrone Audiodatenübertragung an und von der Hostsoftware bereitstellen. Für diese Sideband-Verbindung definiert Microsoft einen Sideband-DDI, der vom Audiotreiber verwendet wird, um Audioendpunkte mit diesem physischen Design zu unterstützen.

Komponenten

IHV-Audiotreiber (Audio-DSP-Treiber)

Dieser Treiber steuert integrierte Audioendpunkte, Mobilfunkaudio und HFP/SCO-Sideband/Offload. Dieses Feature erfordert, dass der Treiber auch den A2DP-Offload unterstützt. Die Zuständigkeiten des Treibers sind dieselben wie für HFP/SCO.

IHV Bluetooth-Transporttreiber und -Controller

Der A2DP-Offload ist in keinem Bluetooth SIG-Standard definiert. Dieses Feature verbessert und fügt Microsoft-definierte Bluetooth HCI-Befehle hinzu. Um das Feature zu unterstützen, muss der Bluetooth-Controller des IHV oder ein IHV-Treiber diese Befehle unterstützen.

A2DP-Profiltreiber

Dieser Treiber wird von Windows bereitgestellt. Seine Funktionen enthalten Folgendes.

  • Implementiert die A2DP- und AVDTP-Spezifikationen
  • Macht PnP-Geräteschnittstelleninstanzen (die A2DP-Sideband-Schnittstelle) für den IHV-Audiotreiber verfügbar, um Anforderungen zu ermitteln, zu öffnen und zu senden
  • Unterstützt die in diesem Dokument definierten Sideband-IOCTL-Anforderungen
  • Sendet Microsoft-definierte Bluetooth HCI-Befehle für den A2DP-Offload

IHV-Audiotreiber (Audio-DSP-Treiber)-Anforderung

Wenn ein Audiotreiber auf einem System für das A2DP-Sideband-Streaming konfiguriert ist, wird eine Geräteschnittstelle mit der Klassen-GUID veröffentlicht, die auf GUID_SIDEBANDAUDIO_A2DP_SUPPORT_INTERFACE {2BC51EE4-07AF-49CF-B04B-FB3F1C26AADC} festgelegt ist. Diese Geräteschnittstelle sollte spätestens beim PnP-Hochfahren des Audiotreibers vorhanden sein.

Sideband-Datenstrukturen

Beachten Sie, dass einige Datenstrukturen und Konstanten, die vom Audiotreiber verwendet werden, im Sidebandaudio.h-Header definiert sind.

Die folgenden Datenstrukturen werden für A2DP-Offload des Audio-Sidebands verwendet.

Gerätedeskriptor – SIDEBANDAUDIO_DEVICE_DESCRIPTOR

Element Beschreibung
NumberOfEndpoints Gibt die Anzahl der Endpunkte auf einem verbundenen Gerät an.

Verbundenes Gerät kann ein zusammengesetztes Gerät sein, das mehrere Audioendpunkte (Lautsprecher, Mikrofon usw.) enthält. Der Audiotreiber kann für jeden Endpunkt Iterationen durchführen und weitere Details zum Erstellen von KS-Filtern für jeden Endpunkt abrufen.

Endpunktdeskriptor – SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR

Der SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR ist wie folgt definiert.

Element Beschreibung
CbSize Gesamtgröße des Endpunktdeskriptors. Dies schließt den Puffer zum Speichern von Zeichenfolgen ein.
ContainerId GUID für Endpunkte. Eine allgemeine GUID für mehrere Endpunkte gibt an, dass diese Endpunkte in demselben physischen Container enthalten sind. Das Betriebssystem kann solche Endpunkte für verschiedene Szenarien problemlos zuordnen.
Kategorie KSPIN_DESCRIPTOR. Kategorie, die den Formfaktor für jeden Endpunkt angibt.
Richtung Gibt die Datenflussrichtung „Erfassen“ oder „Rendern“ an.
Capabilities (Siehe nachfolgende Tabelle)
FriendlyName Anzeigename für Endpunkte, der auf DEVPKEY_DeviceInterface_FriendlyName auf der Endpunkt-KS-Filterschnittstelle angewendet werden soll.
VolumePropertyValuesSize Größe der Struktur KSPROPERTY_DESCRIPTION, die das Volumen und den Bereich für jeden Kanal beschreibt.
SidetoneVolumePropertyValueSize Größe der Struktur KSPROPERTY_DESCRIPTION, die das Volumen und den Bereich für jeden Kanal für Sidetone beschreibt.

Endpunktdeskriptor – SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR – Funktionen

Die Funktionen sind wie folgt definiert.

Element Beschreibung
Volumen Der Endpunkt unterstützt die Lautstärkesteuerung
Mute Der Endpunkt unterstützt das Stummschalten-Steuerelement
Sidetone Der Endpunkt unterstützt das Sidetone-Steuerelement
Feedback Der Endpunkt hat einen Feedbackkanal zugeordnet

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2

Der A2DP-Sideband verwendet eine aktualisierte Version der vorhandenen SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR-Struktur, um weitere Informationen bereitzustellen, die vom Windows-Audiosystem für die Endpunktidentifizierung benötigt werden – SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2.

// Number of device properties that shall be added to the audio filter factory interface.
ULONG                                   FilterInterfacePropertyCount;
DEVPROPERTY*                            FilterInterfaceProperties;

Der Audiotreiber ruft diese Datenstruktur mithilfe der neuen IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2-Anforderung ab. Nach Abschluss der Anforderung fügt der Audiotreiber diese Geräteeigenschaften der Topologie-Audiofilterschnittstelle hinzu.

Audio-Schnittstellenparameter

Die Wahl und das Design des Audiotransports zwischen dem Audiogerät und dem Bluetooth-Controller ist herstellerspezifisch. Dieser Audiotransport ist oft eine I2S- oder PCM-Schnittstelle, kann aber auch ein umfangreicherer, komplexerer Bus wie SLIMbus oder möglicherweise auch SoundWire sein. Dieses Featuredesign legt keine spezifischen Anforderungen für den Audiotransport fest. Wenn der Bluetooth-Codec jedoch im Audio-DSP implementiert ist, kann der Bluetooth-Controller die codierten Frames aus den Daten extrahieren, die über den Audiotransport übertragen werden, um diese Frames für die Übertragung in AVDTP-Medienpakete zu verpacken.

Die Einrichtung und Konfiguration (sofern vorhanden) des Audiotransports gilt als anbieterspezifische Aufgabe. Dies wird durch herstellerspezifische Audio-Schnittstellenparameter erleichtert, die zwischen den Komponenten in diesem Feature übergeben werden. Die herstellerspezifischen Parameter werden häufig vom Hersteller des Audiotreibers und des Bluetooth-Controllers und/oder des Transporttreibers definiert. Die Parameter werden vom Audiogerät und dem Bluetooth-Controller verwendet, um den Audiotransport zwischen dem Audio-DSP- und Bluetooth-Controller zu konfigurieren.

Diese Daten können beispielsweise eine Transport-ID enthalten, wenn mehrere physische oder logische Verbindungen vorhanden sind, die die Verwendung von Signalen einer PCM-Schnittstelle oder das Format der Audiodaten über den Transportweg konfigurieren.

Der Audiotreiber legt herstellerspezifische Audio-Schnittstellenparameter mithilfe von SIOPs fest und ruft sie ab. Diese identifizieren die Daten mithilfe einer GUID und einer ganzen Zahl. Um jedoch einen natürlicheren Bluetooth HCI-Befehlssatz beizubehalten, übergeben die von Microsoft definierten HCI-Befehle die herstellerspezifischen Audio-Schnittstellenparameter mithilfe der folgenden Struktur.

Audio-Schnittstellenparameter

Feld Oktett
Hersteller-ID 0..3
Anbieterspezifische Parameter-ID 4..5
Länge des anbieterspezifischen Werts = (n-9) 6
Anbieterspezifischer Wert 7.. n

Eine Anbieter-ID ist unter „Bluetooth Assigned Numbers“ definiert: https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers.

Der A2DP-Treiber führt eine einfache Konvertierung zwischen den SIOPs des Anbieters, die eine natürlichere Datenstruktur für den Audiotreiber darstellen, und einem Audio-Schnittstellenparameter durch, der für die Bluetooth-HCI natürlicher ist. Die SIOP-GUID des Anbieters wird aus einer Basis-GUID plus Bluetooth-AnbieterID (bestehend aus 4 Zeichen) erstellt. Nur die Anbieter-ID (nicht die gesamte GUID) übergibt die Bluetooth HCI.

Die Basis-GUID lautet SIDEBANDAUDIO_PARAMS_SET_A2DP.

Von Microsoft definierte A2DP-SIOPs

Microsoft definiert zwei SIOPs für A2DP, die Codec-Informationen bereitstellen. Anbieter können zusätzliche SIOPs definieren, um ihre Implementierung zu unterstützen.

Codecs (Codecs-SIOP)

Der Audiotreiber gibt seine Liste der unterstützten A2DP-Codecs (falls vorhanden) mit diesem SIOP aus. Die SIDEBANDAUDIO_IO_PARAM_HEADER-Felder für diese SIOP werden wie folgt festgelegt.

Feld Wert
ParamsSet SIDEBANDAUDIO_PARAMS_SET_A2DP ({8FE0297F-3AE6-4384-ACE3-87589E571B9C})
TypeId SIDEBANDAUDIO_PARAM_A2DP_CODECS (1)
Size Gesamtgröße der Liste der Codec-Funktionen, die auf diesen Header folgt

Die Daten, die auf diesen Header folgen, sind eine Sequenz von Codec-Funktionsstrukturen (variable Größe), wie in den obigen Codec-Funktionsinformationen beschrieben.

Für den Rest dieses Themas wird dieser Parameter als Codecs-SIOP bezeichnet.

Konfigurierter Codec (konfigurierter Codec-SIOP)

Der Audiotreiber kann den aktuell konfigurierten A2DP-Codec mit diesem SIOP abrufen. Die SIDEBANDAUDIO_IO_PARAM_HEADER-Felder für diese SIOP werden wie folgt festgelegt.

Feld Wert
ParamsSet SIDEBANDAUDIO_PARAMS_SET_A2DP ({8FE0297F-3AE6-4384-ACE3-87589E571B9C})
TypeId SIDEANDAUDIO_PARAM_A2DP_CONFIGURED_CODEC (2)
Size Gesamtgröße der Codec-Funktion, die auf diesen Header folgt

Die Daten, die auf diesen Header folgen, sind eine einzelne (variable) Codec-Funktionsstruktur, wie in den oben beschriebenen Codec-Funktionsinformationen beschrieben.

Dieser SIOP ist aktualisierbar, was bedeutet, dass der Audiotreiber die IOCTL_SBAUD_GET_SIOP_UPDATE-Anforderung verwenden sollte, um über Änderungen im konfigurierten Codec auf dem Laufenden zu bleiben.

Für den Rest dieses Themas wird dieser Parameter als „configured-codec-SIOP“ bezeichnet.

Codec-aktiver Latenzmodus (codec-latency-mode-SIOP)

Der Audiotreiber kann den aktiven Latenzmodus des aktuell konfigurierten A2DP-Codecs mithilfe dieses SIOP abrufen. Die SIDEBANDAUDIO_IO_PARAM_HEADER-Felder für diese SIOP werden wie folgt festgelegt.

Feld Wert
ParamsSet SIDEBANDAUDIO_PARAMS_SET_A2DP
TypeId SIDEBANDAUDIO_PARAM_A2DP_CODEC_LATENCY_MODE
Size 1 Byte

Die Daten, die auf diesen Header folgen, sind ein einzelnes Byte, das als ein nicht signierte 8-Bit-Ganzzahl interpretiert wird. Der Wert SIDEBANDAUDIO_CODEC_MODE_HIGH_QUALITY gibt an, dass der aktuell konfigurierte Codec im qualitativ hochwertigen Modus ausgeführt wird, während der Wert SIDEBANDAUDIO_CODEC_MODE_LOW_LATENCY angibt, dass der Codec im Modus mit niedriger Latenz ausgeführt wird. Dieser SIOP ist aktualisierbar, was bedeutet, dass der Audiotreiber die IOCTL_SBAUD_GET_SIOP_UPDATE-Anforderung verwenden sollte, um über Änderungen im Latenzmodus auf dem Laufenden zu bleiben.

Derzeit wird dieser SIOP nur verwendet, wenn der aptX Adaptive-Codec aktiv ist. Weitere Informationen zu aptX finden Sie unter Qualcomm aptX Adaptive Audio.

Für den Rest dieses Themas wird dieser Parameter als codec-latency-mode-SIOP bezeichnet.

Codec L2CAP MTU-Größe (mtu-size-SIOP)

Der Audiotreiber kann die aktuelle L2CAP MTU-Größe (in Byte) mithilfe dieses SIOP abrufen. Die SIDEBANDAUDIO_IO_PARAM_HEADER-Felder für diese SIOP werden wie folgt festgelegt.

Feld Wert
ParamsSet SIDEBANDAUDIO_PARAMS_SET_A2DP
TypeId SIDEBANDAUDIO_PARAM_A2DP_CODEC_MTU_SIZE
Size 2 Bytes

Die Daten, die auf diesen Header folgen, sind 2 Bytes, die als eine nicht signierte 16-Bit-Ganzzahl interpretiert werden. Dieser SIOP ist aktualisierbar, was bedeutet, dass der Audiotreiber die IOCTL_SBAUD_GET_SIOP_UPDATE-Anforderung verwenden sollte, um über Änderungen bei der MTU-Größe auf dem Laufenden zu bleiben.

Derzeit wird dieser SIOP nur verwendet, wenn der aptX Adaptive-Codec aktiv ist. Weitere Informationen zu aptX finden Sie unter Qualcomm aptX Adaptive Audio.

Für den Rest dieses Themas wird dieser Parameter als mtu-size-SIOP bezeichnet.

Verwenden der vom Anbieter definierten SIOPs

Der Audiotreiber kann vom Anbieter definierte SIOPs festlegen.

Anbieter-SIOPs werden nach dem Öffnen der Sideband-Schnittstelle und vor IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR festgelegt

Der A2DP-Treiber speichert die SIOP-Werte in einer Sammlung von SIOPs des Systemkonfigurationsanbieters. Der A2DP-Treiber sendet diese Sammlung beim Behandeln von IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 an den Bluetooth-Controller (mit HCI_VS_MSFT_Avdtp_Capabilities_Configuration). Alle vom Bluetooth-Controller zurückgegebenen Audio-Schnittstellenparameter werden auch in der Sammlung von Systemkonfigurationsanbieter-SIOPs gespeichert. Der Audiotreiber kann diese Werte jederzeit abrufen, nachdem das IOCTL abgeschlossen wurde.

Anbieter-SIOPs nach IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2

Der A2DP-Treiber erklärt alle SIOPs für fehlgeschlagen, die vom Audiotreiber nach IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 gesendet wurden.

Anbieter-SIOPs nach IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR und vor IOCTL_SBAUD_STREAM_OPEN

Der A2DP-Treiber speichert die SIOP-Werte in einer Sammlung von Systemkonfigurationsanbieter-SIOPs. Der A2DP-Treiber sendet diese Sammlung beim Behandeln von IOCTL_SBAUD_STREAM_OPEN an den Bluetooth-Controller (mit HCI_VS_MSFT_Avdtp_Open). Alle vom Bluetooth-Controller zurückgegebenen Audio-Schnittstellenparameter werden auch in der Sammlung der Stream-Konfigurationsanbieter-SIOPs gespeichert. Der Audiotreiber kann diese Werte jederzeit abrufen, nachdem das IOCTL abgeschlossen wurde.

Der A2DP-Treiber löscht die Sammlung der Stream-Konfigurationsanbieter-SIOPs beim Behandeln von IOCTL_SBAUD_STREAM_CLOSE. (Die Sammlung der Systemkonfigurationsanbieter-SIOPs wird nicht gelöscht.)

A2DP-Sideband-Schnittstelle

A2DP-Sideband verwendet die generischen IOCTL_SBAUD_*-Anforderungen. Eine vollständige Liste der IOCTLs finden Sie im sidebandaudio.h-Header. Dieser Abschnitt enthält spezifische Informationen zu A2DP.

PnP-Schnittstellenklasse

Die Schnittstellenklasse ist GUID_DEVINTERFACE_A2DP_SIDEBAND_AUDIO für A2DP-Sideband-Bluetooth-Audio.

IOCTLs, die für KS-Pinzustandsübergänge verwendet werden

Der Audiotreiber sendet diese Anforderungen an bestimmte KS-Pin-Zustandsübergänge.

Microsoft-definierte Bluetooth HCI-Erweiterungen für den A2DP-Offload

Informationen zu den aktuell definierten Erweiterungen finden Sie unter Microsoft-definierte Bluetooth HCI-Erweiterungen .

HCI_VS_MSFT_Read_Supported_Features

Der A2DP-Offload des Audio-Sidebands verbessert den HCI_VS_MSFT_Read_Supported_Features-Befehl, indem ein weiteres Bit im Supported_features-Rückgabeparameter definiert wird, um die Unterstützung für AVDTP-Offloadbefehle anzugeben. Wenn dieses Bit zurückgegeben wird, werden die verbleibenden Befehle in diesem Abschnitt unterstützt.

Eine Beschreibung der Befehls- und Rückgabeparameter finden Sie unter HCI_VS_MSFT_Read_Supported_Features.

Informationen zu den Supported_features-Werten (8 Oktette) finden Sie auch unter HCI_VS_MSFT_Read_Supported_Features. Ein zusätzlicher Wert wird verwendet, um anzugeben, dass der Controller den AVDTP-Offload und die HCI_VS_MSFT_Avdtp_*-Befehle unterstützt, die unter Microsoft-definierte AVDTP Bluetooth HCI-Ereignisse beschrieben werden.

Bluetooth Host-Controller Interface (HCI) gibt alle Interaktionen zwischen einem Host und einem Bluetooth-Funkcontroller an. Die Bluetooth-Spezifikationen ermöglichen vom Anbieter definierte HCI-Befehle und -Ereignisse, um eine nicht standardisierte Interaktion zwischen Hosts und Controllern zuzulassen. Microsoft definiert herstellerspezifische HCI-Befehle und -Ereignisse, die von Windows genutzt werden. Im folgenden werden Microsoft-definierte HCI-Befehle für den Audio-Sideband-Offload verwendet.

Die folgenden AVDTP HCI-Befehle werden im Bluetooth-Thema beschrieben – Microsoft-definierte AVDTP Bluetooth HCI-Ereignisse.

HCI_VS_MSFT_Avdtp_Capabilities_Configuration

Unterbefehl-Opcode-Wert: 7

Konfiguriert die Audiotransportschnittstelle und gibt Codec-Funktionen des Bluetooth-Controllers zurück. Dabei handelt es sich um eine Liste von Codec-Informationsblöcken. Jeder Codec-Informationsblock beschreibt einen unterstützten Codec. Weitere Informationen finden Sie unter HCI_VS_MSFT_Avdtp_Capabilities_Configuration.

HCI_VS_MSFT_Avdtp_Open

Unterbefehl-Opcode-Wert: 8

Ordnet AVDTP-Offloadressourcen innerhalb des Controllers zu und konfiguriert sie. Weitere Informationen finden Sie unter HCI_VS_MSFT_Avdtp__Open.

HCI_VS_MSFT_Avdtp_Start

Unterbefehl-Opcode-Wert: 9

Dieser Befehl startet das Audiostreaming vom Audiotransport an übertragene AVDTP-Medienpakete. Weitere Informationen finden Sie unter HCI_VS_MSFT_Avdtp_Start.

HCI_VS_MSFT_Avdtp_Suspend

Unterbefehl-Opcode-Wert: 0xA

Beendet die von HCI_VS_MSFT_Avdtp_Start initiierte Streamingaktivität. Weitere Informationen finden Sie unter HCI_VS_MSFT_Avdtp_Suspend.

HCI_VS_MSFT_Avdtp_Close

Unterbefehl-Opcode-Wert: 0xB

Gibt die von HCI_VS_MSFT_Avdtp_Open zugeordneten AVDTP-Ressourcen frei. Weitere Informationen finden Sie unter HCI_VS_MSFT_Avdtp_Close.

Bluetooth-Codecs in Audio-DSP oder Bluetooth-Controller

Die Implementierung enthält Bluetooth-Codecs, die im Audio-DSP und/oder Bluetooth-Controller gehostet werden. Der Codecs-SIOP stellt einen Mechanismus für den Audiotreiber bereit, um eine Liste der unterstützten Codecs anzugeben. Ebenso ermöglicht der HCI_VS_MS_Avdtp_Capabilities_Configuration-Befehl dem Bluetooth-Controller, eine Liste der unterstützten Codecs zurückzugeben. Beachten Sie, dass mindestens ein A2DP-Treiber und der Bluetooth-Controller eine Liste der unterstützten Codecs zurückgeben.

Der A2DP-Treiber kann keine Listen von A2DP-Codecs, die sowohl vom Audiotreiber als auch vom Bluetooth-Controller unterstützt werden, zuverlässig überschneiden oder zusammenführen. Wenn beide A2DP-unterstützte Codecs zurückgeben, verwendet Windows nur die Liste, die vom Bluetooth-Transporttreiber zurückgegeben wird.

Wenn für die IHV-Lösung eine Überschneidung oder Zusammenführung von Codec-bezogenen Funktionen der Audio-DSP- und Bluetooth-Controllerfunktionen erforderlich ist, kann der Audiotreiber seine Funktionen entweder über die Codecs-SIOP (sofern die Standarddarstellung ausreichend ist) oder über einen Anbieter-SIOP angeben. Der A2DP-Treiber übergibt SIOPs an den Bluetooth-Controller, der dann die Funktionen überschneiden und den resultierenden Satz unterstützter Codecs aus HCI_VS_MSFT_Avdtp_Capabilities_Configuration zurückgeben kann.

Weitere Informationen

Von Microsoft definierte Bluetooth HCI-Erweiterungen

Richtlinien zur Bluetooth-HFP-Umgehung für Audiotreiber

Richtlinien für Transportbustreiber für Bluetooth-Energiesteuerung

A2DP 1.3.1 (Bluetooth-Spezifikation)

AVDTP 1.3 (Bluetooth-Spezifikation)