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 Artikel wird der Betrieb und die Theorie der Umgehung des Audiostreamings (Bluetooth Hands-Free Profile, HFP) erläutert.
Im Umgehungsmodus fließt der Bluetooth-Audiosteuerungspfad über eine andere Hardwareverbindung als die Hostcontrollerschnittstelle (HCI), z. B. I2S, an den Bluetooth-Controller. Diese andere Hardwareverbindung ist häufig I2S, kann aber eine beliebige Schnittstelle sein, die vom Bluetooth-Hostcontroller bestimmt wird. Diese Verbindung wird als Umgehungs- oder Seitenbandverbindung bezeichnet.
Während Audio-E/A über die Umgehungsverbindung erfolgt, wird der über die Luft synchrone Verbindung orientierte Audiodatenstrom (SCO) weiterhin über die HCI verwaltet. Windows 8 stellt einen HFP-Treiber (Bluetooth Hands-Free Profile) bereit, um die Verwaltung der SCO-Verbindung und anderer Aspekte des Hands-Free-Profils zu vereinfachen. Ein benutzerdefinierter Audiotreiber steuert jedoch die Audiodaten-E/A zwischen Windows und der Umgehungsverbindung.
Der HFP-Treiber und der benutzerdefinierte Steuertreiber für Audio-E/A-Daten verfügen über separate Rollen, die eine effiziente Kommunikation zwischen ihnen erfordern. Diese Kommunikation wird von einer Reihe von IOCTLs verarbeitet, die vom benutzerdefinierten Audiotreiber an den Windows HFP-Treiber übergeben werden.
In der Regel ist die Umgehungsverbindung immer vorhanden. Der Plug & Play-Dienst (PnP) listet die Hardware auf, die diese Verbindung enthält, und lädt den erforderlichen Audiotreiber. Das Audiosystem kann jedoch über HFP-Headsets gekoppelt sein, und die Umgehungsverbindung ist nur nützlich, wenn mindestens ein HFP-Headset gekoppelt ist.
Für jedes gekoppelte HFP-Gerät registriert und aktiviert der Windows HFP-Treiber eine Geräteschnittstelle in der GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS-Schnittstellenklasse. Für HFP-Geräte gelten die folgenden Bedingungen:
- Wenn Windows den HFP-Treiber aktiviert (normalerweise während des Startvorgangs), registriert und aktiviert der HFP-Treiber eine Schnittstelle für jedes gekoppelte HFP-Gerät.
- Wenn ein HFP-Gerät zum ersten Mal mit Windows gekoppelt wird, das bereits ausgeführt wird, registriert der HFP-Treiber und aktiviert eine Schnittstelle für das Gerät.
- Wenn n gekoppelte HFP-Geräte vorhanden sind, registriert der Windows HFP-Treiber n Instanzen der Geräteschnittstelle.
- Wenn ein gekoppeltes HFP-Gerät entfernt wird, deaktiviert der Windows HFP-Treiber die Geräteschnittstelle.
- Wenn Windows den HFP-Treiber beendet (normalerweise während des Herunterfahrens oder Neustarts), deaktiviert der HFP-Treiber die Schnittstelle für jedes gekoppelte HFP-Gerät.
- Der Audiotreiber muss mehrere Ein- und Auslagerungen von Schnittstellen jederzeit verarbeiten, nicht nur beim Starten oder Herunterfahren.
Verwalten von I2S- und SCO-Ressourcen
In diesem Abschnitt werden die Annahmen erläutert, die beim Entwurf der Bluetooth-Umgehung von Audiostreamingunterstützung getroffen wurden.
Derzeit geht Windows davon aus, dass es nur einen Bluetooth-Hostcontroller gibt. Darüber hinaus geht die Hands-Free Profile (HFP) synchrone SCO-Umgehungsunterstützung (Hands-Free Profile) davon aus, dass es nur eine Umgehungsverbindung gibt, und jeder kanal, der über die HFP-Gerätetreiberschnittstelle geöffnet wird, ist dieser einzelnen Verbindung zugeordnet.
Audiotreiber sollten diesen Kanal und die einzelne Umgehungsverbindung für einen einzelnen Consumer auf einer First-Come-First-Serve-Basis schlichten. Die einfachste Möglichkeit, dies zu erreichen, besteht darin, dass der Treiber nur einem einzelnen Filter erlaubt, seine Pins in den ACQUIRE-Zustand zu überstellen.
Weitere Informationen
Die folgenden Themen enthalten weitere Informationen zum Verbindungslebenszyklus und einigen Designfeatures eines HFP-Geräts und seines Audiotreibers: