Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema wird das Auslagern von Audio-Sideband-A2DP beschrieben, das ab Windows 11, Build 10.0.22000 für Bluetooth verfügbar ist.
Das Hauptziel des A2DP-Offloads von 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 Bluetooth Bypass Guidelines for Audio Drivers und die A2DP Bluetooth-Spezifikationen, die im Abschnitt siehe auch dieses Themas erwähnt werden.
Design der Sidebandarchitektur
Der Audio-Nebenband A2DP-Offload basiert auf vorhandenen bewährten Designs, um den Stromverbrauch während der Wiedergabe linearer Audioinhalte über integrierte Lautsprecher oder angeschlossene analoge Kopfhörer zu reduzieren. Kurz gesagt, diese Designs übertragen große Mengen an Audiodaten (im Bereich von etwa einer Sekunde) über einen herstellerspezifischen Audiotreiber in einen Audio-DSP. Die Hauptprozessoren und die meisten anderen Schaltkreise wechseln in einen Energiesparzustand, während der Audio-DSP die gestückelten Audiodaten über die integrierten Lautsprecher streamt. Wenn die Audiodaten fast erschöpft sind, löst der DSP einen Interrupt für den Audiotreiber aus, der das Betriebssystem anweist, mehr Audiodaten über den Audiotreiber an den DSP zu übertragen.
Hellgraue Komponenten im folgenden Diagramm werden vom IHV bereitgestellt.
Audio Sideband A2DP Offload 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 bezieht sich auf 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 Audiodaten vom Betriebssystem an Audio-DSP, der Audio-DSP überträgt Daten über die Sidebandverbindung an den Hardwarebuscontroller, und der Controller überträgt 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 Hostsoftware bereitstellen. Für diese Sidebandverbindung 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 das A2DP-Offload unterstützt. Die Verantwortlichkeiten des Fahrers sind wie für HFP/SCO.
IHV Bluetooth-Transporttreiber und -Controller
A2DP-Offload ist in keinem Bluetooth SIG-Standard definiert. Dieses Feature verbessert und fügt microsoftdefinierte Bluetooth HCI-Befehle hinzu. Um dieses Feature zu unterstützen, unterstützt der Bluetooth-Controller des IHV oder ein IHV-Treiber diese Befehle.
A2DP-Profiltreiber
Dieser Treiber wird von Windows bereitgestellt. Zu den Funktionen gehören die folgenden:
- Implementiert die A2DP- und AVDTP-Spezifikationen
- Macht PnP-Geräteschnittstelleninstanzen (die A2DP-Sidebandschnittstelle) für den IHV-Audiotreiber verfügbar, um sie zu entdecken, zu öffnen und Anfragen zu senden.
- Unterstützt die in diesem Dokument definierten Sideband-IOCTL-Anforderungen
- Sendet von Microsoft definierte Bluetooth-HCI-Befehle für A2DP-Offload.
IHV-Audiotreiber (Audio-DSP-Treiber) Anforderungen
Wenn ein Audiotreiber auf einem System für das A2DP-Sidebandstreaming konfiguriert ist, wird eine Geräteschnittstelle mit Klassen-GUID veröffentlicht, die auf GUID_SIDEBANDAUDIO_A2DP_SUPPORT_INTERFACE {2BC51EE4-07AF-49CF-B04B-FB3F1C26AADC} festgelegt ist. Diese Geräteschnittstelle sollte nicht später als der PnP-Start 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 das A2DP-Seitenband-Audio-Offload verwendet.
Gerätedeskriptor – SIDEBANDAUDIO_DEVICE_DESCRIPTOR
| Element | BESCHREIBUNG |
|---|---|
| AnzahlDerEndpunkte | 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 über jeden Endpunkt iterieren und weitere Details zum Erstellen von KS-Filtern für jeden Endpunkt abrufen.
Endpunktdeskriptor – SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR
Der SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR wird 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. |
| Funktionen | (Siehe Tabelle unten) |
| FriendlyName | Benutzerfreundlicher Name für den Endpunkt, der auf die DEVPKEY_DeviceInterface_FriendlyName auf der Endpunkt-KS-Filterschnittstelle angewendet werden soll. |
| VolumePropertyValuesSize | Größe der KSPROPERTY_DESCRIPTION-Struktur, die die Lautstärkestufen und den Bereich für jeden Kanal beschreibt. |
| SidetoneVolumePropertyValueSize | Größe der KSPROPERTY_DESCRIPTION Struktur, die die Lautstärkeschritte und den Bereich für jeden Kanal für Sidetone beschreibt. |
Endpunktdeskriptor – SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR – Funktionen
Die Funktionen werden wie folgt definiert.
| Element | BESCHREIBUNG |
|---|---|
| Volumen | Endpunkt unterstützt die Lautstärkeregelung |
| Mute | Endpunkt unterstützt Stummschalten-Kontrolle |
| Seitenton | Endpoint unterstützt Sidetone-Steuerelement |
| Feedback | Endpunkt ist mit einem Feedbackkanal verbunden |
SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2
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 Anfrage fügt der Audiotreiber diese Geräteeigenschaften seiner Topologie-Audiofilterschnittstelle hinzu.
Parameter der Audioschnittstelle
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 potenziell 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.
Setup und Konfiguration (sofern vorhanden) des Audiotransports gilt als anbieterspezifische Aufgabe. Dies wird durch herstellerspezifische Audioschnittstellenparameter erleichtert, die zwischen 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 z. B. eine Transport-ID enthalten, wenn mehrere physische oder logische Verbindungen vorhanden sind, die Verwendung von Signalen einer PCM-Schnittstelle oder das Format der Audiodaten über den Transport hinweg konfiguriert wird.
Der Audiotreiber setzt und liest anbieterdefinierte Parameter der Audioschnittstelle mithilfe von SIOPs aus, die die Daten mit einer GUID und einer ganzen Zahl identifizieren. Um jedoch einen natürlicheren Bluetooth HCI-Befehlssatz beizubehalten, übergeben die von Microsoft definierten HCI-Befehle herstellerspezifische Audioschnittstellenparameter mithilfe der folgenden Struktur.
Audio Interface-Parameter
| 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 in den Bluetooth-zugewiesenen Nummern definiert: https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers.
Der A2DP-Treiber führt eine direkte Konvertierung zwischen Anbieter-SIOPs durch, die natürlichere Datenstruktur für den Audiotreiber sind, und einen Audioschnittstellenparameter, der für Bluetooth HCI natürlicher ist. Die SIOP-GUID des Anbieters wird aus einer Basis-GUID und einer 4-stelligen Bluetooth-Vendor-ID erstellt. Nur die Hersteller-ID (nicht die gesamte GUID) wird über die Bluetooth HCI übertragen.
Die Basis-GUID lautet SIDEBANDAUDIO_PARAMS_SET_A2DP.
Von Microsoft definierte A2DP-SIOPs
Microsoft definiert zwei SIOPs für A2DP, die Codecinformationen 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 Felder des SIDEBANDAUDIO_IO_PARAM_HEADER 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) |
| Größe | 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 (variabler Größe), wie in den obigen Codec-Funktioneninformationen 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) |
| Größe | Gesamtgröße der Codecfunktion, die auf diesen Header folgt |
Die Daten, die auf diesen Header folgen, sind eine einzelne Codec-Fähigkeitsstruktur (variabler Größe), wie in den obigen Codecfähigkeiten 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 |
| Größe | 1 Byte |
Die Daten, die auf diesen Header folgen, sind ein einzelnes Byte, das als 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 dieses SIOP sind wie folgt festgelegt.
| Feld | Wert |
|---|---|
| ParamsSet | SIDEBANDAUDIO_PARAMS_SET_A2DP |
| TypeId | SIDEBANDAUDIO_PARAM_A2DP_CODEC_MTU_SIZE |
| Größe | 2 Bytes |
Die Daten, die auf diesen Header folgen, sind 2 Bytes, die als 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, über Änderungen 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.
Verwendung von vom Anbieter definierten SIOPs
Der Audiotreiber kann vom Hersteller definierte SIOPs festlegen.
Vendor-SIOPs, die nach dem Öffnen der Sideband-Schnittstelle und vor dem IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR festgelegt werden.
Der A2DP-Treiber speichert die SIOP-Werte in einer Sammlung von SIOPs des Systemkonfigurationsanbieters. Der A2DP-Treiber sendet diese Sammlung unter Verwendung von HCI_VS_MSFT_Avdtp_Capabilities_Configuration beim Behandeln von IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 an den Bluetooth-Controller. Alle vom Bluetooth-Controller zurückgegebenen Audioschnittstellenparameter werden auch in der Sammlung von SIOPs des Systemkonfigurationsanbieters gespeichert. Der Audiotreiber kann diese Werte jederzeit abrufen, nachdem das IOCTL abgeschlossen wurde.
Anbieter-SIOPs nach IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2
Der A2DP-Treiber schlägt alle SIOPs fehl, die vom Audiotreiber nach IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 gesendet wurden.
Die Anbieter-SIOPs werden nach IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR und vor IOCTL_SBAUD_STREAM_OPEN gesetzt.
Der A2DP-Treiber speichert die SIOP-Werte in einer Sammlung von SIOPs des Datenstromkonfigurationsanbieters. 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 Audioschnittstellenparameter werden auch in der Sammlung von SIOPs des Datenstromkonfigurationsanbieters gespeichert. Der Audiotreiber kann diese Werte jederzeit abrufen, nachdem das IOCTL abgeschlossen wurde.
Der A2DP-Treiber löscht die Sammlung von SIOPs des Anbieter für die Datenstromkonfiguration während der Behandlung von IOCTL_SBAUD_STREAM_CLOSE. (Die Sammlung von SIOPs des Systemkonfigurationsanbieters wird nicht gelöscht.)
A2DP-Randbandschnittstelle
A2DP-Sideband verwendet die generischen IOCTL_SBAUD_*-Anforderungen. Eine vollständige Liste der IOCTLs finden Sie in der Header-Datei "sidebandaudio.h". Dieser Abschnitt enthält spezifische Informationen zu A2DP.
PnP-Schnittstellenklasse
Die Schnittstellenklasse ist GUID_DEVINTERFACE_A2DP_SIDEBAND_AUDIO für A2DP-Sideband-Bluetooth-Audio vorgesehen.
IOCTLs, die für KS-Pin-Zustandsübergänge verwendet werden
Der Audiotreiber sendet diese Anforderungen an bestimmte KS-Pin-Zustandsübergänge.
- Senden Sie beim ersten Übergang über KSSTATE_STOP (normalerweise zu KSSTATE_ACQUIRE) IOCTL_SBAUD_STREAM_OPEN.
- Beim Übergang bis zu KSSTATE_RUN senden Sie IOCTL_SBAUD_STREAM_START.
- Beim Übergang unter KSSTATE_RUN senden Sie IOCTL_SBAUD_STREAM_SUSPEND.
- Senden Sie beim Schließen des KS-Pins IOCTL_SBAUD_STREAM_CLOSE.
Von Microsoft definierte Bluetooth HCI-Erweiterungen für A2DP-Offload
Informationen zu den aktuell definierten Erweiterungen finden Sie unter microsoft-definierten Bluetooth HCI-Erweiterungen .
HCI_VS_MSFT_Read_Supported_Features
Der Audio-Nebenband-A2DP-Offload 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-Offload-Befehle anzugeben. Wenn dieses Bit im gesetzten Zustand zurückgegeben wird, müssen die verbleibenden Befehle in diesem Abschnitt unterstützt werden.
Eine Beschreibung der Befehls- und Rückgabeparameter finden Sie unter HCI_VS_MSFT_Read_Supported_Features.
Informationen zu den Supported_features-Werten (8 Octets) finden Sie auch unter HCI_VS_MSFT_Read_Supported_Features. Ein zusätzlicher Wert wird verwendet, um anzugeben, dass der Controller AVDTP Offload und die HCI_VS_MSFT_Avdtp_*-Befehle unterstützt, die in Microsoft-definierten AVDTP Bluetooth HCI-Ereignissen beschrieben werden.
Audiobezogene microsoftdefinierte Bluetooth HCI-Erweiterungen
Bluetooth Host-Controller Interface (HCI) gibt alle Interaktionen zwischen einem Host und einem Bluetooth-Funkcontroller an. Bluetooth-Spezifikationen ermöglichen herstellerdefinierte HCI-Befehle und -Ereignisse, um nicht standardisierte Interaktion zwischen Hosts und Controllern zu ermöglichen. Microsoft definiert herstellerspezifische HCI-Befehle und Ereignisse, die von Windows genutzt werden. Von Microsoft definierte HCI-Befehle werden für das Offload von Audiokomponenten verwendet.
Die folgenden AVDTP HCI-Befehle werden im Bluetooth-Thema beschrieben – von Microsoft definierte AVDTP Bluetooth HCI-Ereignisse.
HCI_VS_MSFT_Avdtp_Capabilities_Configuration
Subcommand 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 Codecinformationsblock beschreibt einen unterstützten Codec. Weitere Informationen finden Sie unter HCI_VS_MSFT_Avdtp_Capabilities_Configuration.
HCI_VS_MSFT_Avdtp_Open
Subcommand opcode value: 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
Subbefehls-Opcode-Wert: 9
Mit diesem Befehl wird das Audiostreaming vom Audiotransport an übertragene AVDTP-Medienpakete gestartet. Weitere Informationen finden Sie unter HCI_VS_MSFT_Avdtp_Start.
HCI_VS_MSFT_Avdtp_Suspend
Subkommandos 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
Der Wert des Unterbefehls-Opcode: 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 befehl HCI_VS_MS_Avdtp_Capabilities_Configuration 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 Über- 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 von unterstützten Codecs aus HCI_VS_MSFT_Avdtp_Capabilities_Configuration zurückgeben kann.
Siehe auch
Von Microsoft definierte Bluetooth HCI-Erweiterungen
Richtlinien zur Bluetooth-Umgehung für Audiotreiber
Transportbus-Treiber für Bluetooth Power Control Handhabungsrichtlinien