Freigeben über


Bluetooth-Treiberstapel

Der Bluetooth-Treiberstapel umfasst den Kernteil der Unterstützung, die Microsoft für das Bluetooth-Protokoll bereitstellt. Mit diesem Stapel können Bluetooth-fähige Geräte sich gegenseitig lokalisieren und Verbindungen herstellen. Über solche Verbindungen können die Geräte Daten austauschen und über verschiedene Anwendungen miteinander interagieren.

Die folgende Abbildung zeigt die Module innerhalb des Bluetooth-Treiberstapels zusammen mit möglichen benutzerdefinierten Benutzermodus- und Kernelmodustreibern, die nicht in Windows Vista und höher enthalten sind. Diese benutzerdefinierten Treiber werden als Profiltreiber bezeichnet.

Diagramm der Architektur des Bluetooth-Treiberstapels

  • Benutzermodus

    • Anwendung im Benutzermodus: Eine Anwendung im Benutzermodus, die über veröffentlichte APIs auf den Bluetooth-Treiberstapel zugreift. Weitere Informationen finden Sie unter Informationen zu Bluetooth in der Windows SDK-Dokumentation.

      Benutzermodusanwendungen sollten eine Verknüpfung mit BthProps.lib anstelle von IrProps.lib herstellen, um APIs wie BluetoothSetLocalServiceInfo verwenden zu können.

  • Beispiele für Profiltreiber

    • WAP-Kernelmodustreiber: Die WAP-Komponente (Wireless Application Protocol) ist ein Beispiel für einen Profiltreiber, der zwischen dem Windows-Netzwerkstapel und BthPort kommuniziert und auf die L2CAP-Schnittstelle und optional auf die in L2CAP enthaltene SDP-Schnittstelle zugreift. Weitere mögliche Profile sind das Profil advanced audio distribution (A2DP), A/V Remote Control Profile (AVRCP), Generic A/V Distribution Profile (GAVDP) und Common ISDN Access (CIP).

    • Audio-Kernelmodustreiber: Ein Beispiel für einen Profiltreiber, der zwischen dem Windows-Audiostapel und BthPort kommuniziert und auf die in letzteren enthaltenen SCO-Schnittstellen zugreift. Mögliche Profile sind das Hands Free-Profil (Hands Free Profile, HFP), das Headset-Profil (HSP), das Profil für die schnurlose Telefonie (Cordless Telephony Profile, CTP) und das Intercom-Profil (ICP). Dieser Profiltreiber ist in Windows ab Windows 8 enthalten.

    • Bluetooth LE Heart Rate Monitor-Profil: Ein Beispiel für einen Bluetooth LE-Profiltreiber, der mit der Le-API (Bluetooth Low Energy) kommuniziert.

  • Komponenten des Bluetooth-Treiberstapels

    • IrProps: Eine Komponente, die für die Abwärtskompatibilität für Profiltreiber verwendet wird, die für die erste Version des Bluetooth-Treiberstapels erstellt werden. IrProps wird nur aus Gründen der Abwärtskompatibilität bereitgestellt. Verwenden Sie die BthProps-Komponente für die Neuentwicklung.

    • BthProps: Eine Komponente, die die Implementierung der Bluetooth-Benutzeroberfläche zusammen mit der Implementierung der Bluetooth-APIs enthält, auf die Benutzermodusanwendungen zugreifen. Diese Komponente sendet Anfragen über Remoteprozeduraufrufe (RPC) an BthServ. Darüber hinaus führt BthProps einen Pinaustausch mit BthPort über private IOCTLs aus. Beachten Sie, dass BthProps auf jedem System mit einem Bluetooth-fähigen Funkgerät ausgeführt wird.

    • BthServ: Ein Dienst, der für das Zwischenspeichern und Weiterleiten von Abfragedaten an Bthport verantwortlich ist.

    • BthCi: Das Installationsprogramm für die Bluetooth-Klasse.

    • WshBth: Die Bluetooth-Windows-Socket-Hilfskomponente. WshBth wird von der Windows-Socketebene aufgerufen, um Socketvorgänge auszuführen. WshBth ruft in erster Linie rfComm über die TDI-Schnittstelle auf. WshBth ruft auch BthServ auf, um Remotegeräteabfragen durchzuführen, und an BthPort, um lokale Funkanfragen durchzuführen.

    • FSquirt: Eine OBEX-Komponente (Nonextensible Object Exchange), mit der Benutzer Dateien über eine offene Bluetooth-Verbindung senden und empfangen können. OBEX kommuniziert mit Remotegeräten über RFCOMM, das die WshBth-Komponente verwendet.

    • BthPrint: Eine Komponente, die das Hardcopy Cable Replacement Profile (HCRP) implementiert. Mit dieser Komponente kann das Drucksystem Daten an Bluetooth-fähige Drucker senden und von diesen empfangen. BthPrint kommuniziert mit der SDP-Schnittstelle in BthPort, um Remotedrucker abzufragen, und die L2CAP-Schnittstelle in BthPort zum Senden und Empfangen von Daten.

    • HidBth: Die Komponente, die das HID-Profil (Human Interface Device) implementiert. HidBth kommuniziert auch mit den L2CAP- und SDP-Schnittstellen in BthPort. HidBth stellt eine Verbindung mit dem HID-Stapel her, ähnlich wie das USB-HID-Modul.

    • BthPan: Die Komponente, die das Pan-Profil (Personal Area Network) implementiert und TCP-Verbindungen über eine offene Bluetooth-Verbindung bereitstellt. In Windows Vista und Windows XP unterstützt BthPan nur ausgehende Verbindungen. BthPan ist auch ein Client der BthPort-Komponente und verwendet sowohl die L2CAP- als auch die SDP-Schnittstelle.

    • RfComm: Die Komponente, die das Serielle Bluetooth-Kabelemulationsprotokoll implementiert. RfComm verwendet auch die L2CAP- und SDP-Schnittstellen in BthPort. Der obere Rand von RfComm macht die TDI-Schnittstelle verfügbar, sodass diese Komponente als Netzwerktransport erscheint. So stellt WshBth eine Verbindung mit Bluetooth her, um Daten von Benutzermodus-APIs zu senden und zu empfangen.

      Anwendungen im Benutzermodus können über die winsock-Schnittstellen, die im Windows SDK beschrieben sind, auf RfComm zugreifen.

    • BthModem: Die Komponente, die virtuelle COM-Ports und DFÜ-Netzwerke (DUN) implementiert. BthModem leitet alle E/A- und Steuerungsvorgänge über eine TDI-Schnittstelle an RfComm weiter. Der obere Rand von BthModem kommuniziert mit Serial.sys , um den Anschein zu erwecken, ein drahtloser COM-Port zu sein.

    • BthEnum: Der Bluetooth-Bustreiber. BthEnum kommuniziert mit dem Plug & Play-Manager (PnP), um Geräteobjekte zu erstellen und zu zerstören, die zum Aktivieren von Bluetooth-Diensten verwendet werden. BthEnum erstellt eine PDO für jeden Dienst, den ein verbundenes Remotegerät unterstützt. Wenn ein Benutzer beispielsweise eine Bluetooth-fähige Maus verbindet, erkennt Windows, dass die Maus den Bluetooth HID-Dienst unterstützt, und erstellt eine PDO für den HID-Dienst, der dazu führt, dass der PnP-Manager HidBth lädt.

      Hinweis

      BthEnum erstellt keine PDOs für Dienste, die im Registrierungsschlüssel UnsupportedServices angezeigt werden, wie in Bth.inf angegeben.

    • BthLEEnum- Der Bluetooth Low Energy (LE)-Bustreiber. BthLEEnum implementiert das ATT-Protokoll und das GATT-Profil. Es ist auch für die Erstellung von PDOs verantwortlich, um die Remotegeräte und ihre primären Dienste darzustellen.

    • BthPort: Ein Minidriver, der vom BthUsb-Miniport geladen wird. BthPort bietet vier Komponenten:

      1. Die HCI-Komponente kommuniziert über das in der Bluetooth-Spezifikation definierte Host Controller Interface (HCI) mit dem lokalen Bluetooth-fähigen Funkgerät. Da alle Bluetooth-fähigen Funkgeräte die HCI-Spezifikation implementieren, kann BthPort unabhängig vom Hersteller oder Modell mit jedem Bluetooth-fähigen Funkgerät kommunizieren.
      2. Die SCO-Komponente implementiert das SCO-Protokoll (Synchronous Connection-Oriented). Dieses Protokoll unterstützt das Erstellen von Punkt-zu-Punkt-Verbindungen mit einem Remotegerät. SCO-Clients kommunizieren mit der SCO-Schnittstelle, indem sie Bluetooth-Anforderungsblöcke (BRBs) erstellen und senden .
      3. L2CAP implementiert das Steuerungs- und Anpassungsprotokoll für logische Verbindungen von Bluetooth. Dieses Protokoll unterstützt das Erstellen eines verlustfreien Kanals für ein Remotegerät. L2CAP-Clients kommunizieren mit der L2CAP-Schnittstelle, indem sie Bluetooth-Anforderungsblöcke (BrBs) erstellen und senden.
      4. SDP implementiert das Bluetooth-Dienstermittlungsprotokoll.
    • BthUsb.sys: Der Miniport, der die Busschnittstelle von BthPort abstrahiert.