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 werden der Betrieb und die Theorie des Bluetooth Hands-free-Profils (HFP) im Zusammenhang mit Bypass-Audiostreaming 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 jedoch eine beliebige Schnittstelle sein, die vom Bluetooth-Hostcontroller bestimmt wird. Diese Verbindung wird als "Bypass" oder "Sideband"-Verbindung bezeichnet.
Während Audio-E/A über die Bypassverbindung erfolgt, wird der über Funk synchronisierte Verbindungsdatenstrom nach wie vor über die HCI verwaltet. Windows 8 bietet einen Bluetooth Hands-Free Profile (HFP)-Treiber, um die Verwaltung der SCO-Verbindung und anderer Aspekte des Hands-Free-Profils zu vereinfachen. Ein benutzerdefinierter Audiotreiber steuert jedoch 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 behandelt, die vom benutzerdefinierten Audiotreiber an den Windows HFP-Treiber übergeben werden.
In der Regel ist die Umgehungsverbindung immer vorhanden. Der Plug and Play -Dienst (PnP) listet die Hardware auf, die diese Verbindung enthält, und lädt den erforderlichen Audiotreiber. Das Audiosystem kann entweder HFP-Headsets gekoppelt haben oder nicht, und die Bypass-Verbindung ist nur dann 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. Die folgenden Bedingungen gelten für HFP-Geräte:
- Wenn Windows den HFP-Treiber aktiviert (in der Regel beim Start), registriert und aktiviert der HFP-Treiber eine Schnittstelle für jedes gekoppelte HFP-Gerät.
- Wenn ein HFP-Gerät zum ersten Mal mit einem bereits laufenden Windows gekoppelt wird, registriert der HFP-Treiber eine Schnittstelle für das Gerät und aktiviert sie.
- 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 An- und Abgänge von Schnittstellen jederzeit verarbeiten, nicht nur während des Starts oder Herunterfahrens.
Verwalten von I2S- und SCO-Ressourcen
In diesem Abschnitt werden die Annahmen erläutert, die im Zusammenhang mit der Unterstützung von Audiostreaming mit Bluetooth-Bypass im Entwurf gemacht wurden.
Derzeit geht Windows davon aus, dass nur ein Bluetooth-Hostcontroller vorhanden ist. Darüber hinaus geht die Hands-Free Profile (HFP)-synchrone verbindungsorientierte (SCO)-Umgehungsunterstützung davon aus, dass nur eine Umgehungsverbindung vorhanden ist, und jeder Kanal, der über die HFP-Gerätetreiberschnittstelle geöffnet wird, ist dieser einzelnen Verbindung zugeordnet.
Audiotreiber sollten diesen Kanal und die Bypassverbindung für einen einzelnen Verbraucher auf First-Come-First-Serve-Basis verwalten. Die einfachste Möglichkeit, dies zu erreichen, besteht darin, dass der Treiber nur einen einzigen Filter zulässt, um seine Pins in den ACQUIRE-Zustand zu überstellen.
Siehe auch
Die folgenden Themen enthalten weitere Informationen zum Lebenszyklus der Verbindung und zu einigen Designfeatures eines HFP-Geräts und seines Audiotreibers: