Udostępnij przez


Stos sterowników Bluetooth

Stos sterowników Bluetooth obejmuje podstawową część wsparcia zapewnianą przez firmę Microsoft dla protokołu Bluetooth. Dzięki temu stosowi urządzenia z obsługą połączenia Bluetooth mogą lokalizować się nawzajem i nawiązywać połączenia. W przypadku tych połączeń urządzenia mogą wymieniać dane i współdziałać ze sobą za pośrednictwem różnych aplikacji.

Na poniższej ilustracji przedstawiono moduły w stosie sterowników Bluetooth wraz z możliwymi niestandardowymi sterownikami trybu użytkownika i trybu jądra, które nie są uwzględnione w systemie Windows Vista i nowszych wersjach. Sterowniki niestandardowe są znane jako profilowe sterowniki.

Diagram przedstawiający architekturę stosu sterowników Bluetooth.

Obraz architektury zawiera następujące składniki i przykłady:

  • Tryb użytkownika

    • Aplikacja w trybie użytkownika: aplikacja trybu użytkownika uzyskuje dostęp do stosu sterowników Bluetooth za pośrednictwem opublikowanych interfejsów API. Aby uzyskać więcej informacji, zobacz Informacje o funkcji Bluetooth w dokumentacji zestawu Windows SDK.

      Aplikacje w trybie użytkownika powinny łączyć się z biblioteką BthProps.lib zamiast IrProps.lib, aby używać interfejsów API, takich jak BluetoothSetLocalServiceInfo.

  • Przykłady sterowników profilów

    • Sterownik trybu jądra WAP: Składnik protokołu WAP (Wireless Application Protocol) jest przykładem sterownika profilu, który komunikuje się między stosem sieci systemu Windows i BthPort. Uzyskuje dostęp do interfejsu L2CAP i opcjonalnie uzyskuje dostęp do interfejsu protokołu SDP (Service Discovery Protocol) zawartego w protokole L2CAP. Inne możliwe profile obejmują profil zaawansowanej dystrybucji audio (A2DP), profil zdalnego sterowania A/V (AVRCP), ogólny profil dystrybucji A/V (GAVDP) i wspólny profil dostępu ISDN (CIP).

    • Sterownik trybu jądra dźwięku: przykład sterownika profilu, który działa jako środek komunikacji między stosem audio systemu Windows a BthPort, umożliwiając dostęp do interfejsów SCO w BthPort. Możliwe profile obejmują profil głośnomówiący (HFP), profil zestawu słuchawkowego (HSP), profil telefonii bezprzewodowej (CTP) i profil interkomu (ICP). Ten sterownik profilu jest dołączony do systemu Windows, począwszy od systemu Windows 8.

    • Profil monitora tętna Bluetooth LE: przykład sterownika profilu Bluetooth LE, który komunikuje się z interfejsem API Bluetooth Low Energy (LE).

  • Składniki stosu sterowników Bluetooth

    • IrProps: składnik używany do zapewnienia kompatybilności wstecznej ze sterownikami profilów utworzonych dla pierwszej wersji stosu Bluetooth sterowników. IrProps jest udostępniane tylko w celu zapewnienia kompatybilności wstecznej. W przypadku nowego programowania użyj składnika BthProps .

    • BthProps: składnik, który zawiera implementację interfejsu użytkownika Bluetooth wraz z implementacją interfejsów API Bluetooth, do których uzyskują dostęp aplikacje w trybie użytkownika. Ten składnik wysyła zapytania do usługi BthServ za pośrednictwem zdalnych wywołań procedur (RPC). Ponadto BthProps przeprowadza wymiany pinów z BthPort za pośrednictwem prywatnych IOCTLs. BthProps działa w dowolnym systemie z włączonym urządzeniem radiowym Bluetooth.

    • BthServ: usługa odpowiedzialna za buforowanie i przekazywanie danych zapytania do usługi Bthport.

    • BthCi: Instalator klasy Bluetooth.

    • WshBth: pomocniczy składnik gniazda Bluetooth systemu Windows. Funkcja WshBth jest wywoływana przez warstwę gniazd w systemie Windows w celu wykonywania operacji na gniazdach. WshBth wywołuje głównie RFCOMM za pośrednictwem Interfejsu sterownika transportu (TDI). WshBth wywołuje również BthServ, aby przeprowadzić zapytania o urządzenia zdalne, oraz BthPort, aby wykonać lokalne zapytania radiowe.

    • FSquirt: składnik wymiany obiektów (OBEX), który umożliwia użytkownikom wysyłanie i odbieranie plików za pośrednictwem otwartego połączenia Bluetooth. OBEX komunikuje się z urządzeniami zdalnymi za pomocą RFCOMM, który korzysta ze składnika WshBth.

    • BthPrint: składnik, który implementuje profil wymiany kablowej dla wydruków (HCRP). Ten składnik umożliwia systemowi drukowania wysyłanie danych do i odbieranie danych z drukarek obsługujących funkcję Bluetooth. Usługa BthPrint komunikuje się z interfejsem SDP w usłudze BthPort w celu wykonywania zapytań dotyczących drukarek zdalnych i interfejsu L2CAP w usłudze BthPort w celu wysyłania i odbierania danych.

    • HidBth: składnik, który implementuje profil urządzenia interfejsu człowieka (HID). HidBth komunikuje się również z interfejsami L2CAP i SDP w usłudze BthPort. HidBth łączy się ze stosem HID w podobny sposób do modułu USB HID.

    • BthPan: składnik, który implementuje profil sieci osobistej (PAN), który zapewnia połączenia TCP przez otwarte połączenie Bluetooth. W systemach Windows Vista i Windows XP funkcja BthPan obsługuje tylko połączenia wychodzące. BthPan jest również klientem składnika BthPort i używa interfejsów L2CAP i SDP.

    • RFCOMM: składnik, który implementuje protokół emulacji szeregowego kabla Bluetooth. RFCOMM używa również interfejsów L2CAP i SDP znalezionych w usłudze BthPort. Górna krawędź RFCOMM uwidacznia interfejs TDI, który pozwala temu składnikowi funkcjonować jako transport sieciowy. W ten sposób usługa WshBth łączy się z funkcją Bluetooth w celu wysyłania i odbierania danych z interfejsów API trybu użytkownika.

      Aplikacje w trybie użytkownika mogą uzyskiwać dostęp do funkcji RFCOMM przy użyciu interfejsów Winsock opisanych w zestawie SDK systemu Windows.

    • BthModem: składnik, który implementuje wirtualne porty COM i sieć dial-up (DUN). Moduł BthModem kieruje wszystkie operacje wejścia/wyjścia i sterowania do RFCOMM za pośrednictwem interfejsu TDI. Górna krawędź elementu BthModem komunikuje się z plikiem Serial.sys, aby dać wrażenie bycia bezprzewodowym portem COM.

    • BthEnum: Kierowca autobusu Bluetooth. BthEnum komunikuje się z menedżerem Plug and Play (PnP) w celu tworzenia i niszczenia obiektów urządzeń używanych do włączania usług Bluetooth. BthEnum tworzy PDO dla każdej usługi obsługiwanej przez zdalne urządzenie, które jest połączone. Na przykład gdy użytkownik łączy mysz z włączoną funkcją Bluetooth, system Windows wykryje, że mysz obsługuje usługę Bluetooth HID. System Windows tworzy PDO dla usługi HID, co powoduje, że menedżer PnP ładuje sterownik HidBth.

      Uwaga / Notatka

      BthEnum nie tworzy PDO dla usług, które są wymienione w kluczu rejestru UnsupportedServices, zgodnie z określeniem w pliku Bth.inf.

    • BthLEEnum: Sterownik autobusu Bluetooth Low Energy (LE). BthLEEnum implementuje protokół ATT i profil GATT. Ten sterownik jest również odpowiedzialny za tworzenie PDO reprezentujących urządzenia zdalne oraz ich główne usługi.

    • BthPort: minidriver załadowany przez miniport BthUsb. Usługa BthPort udostępnia cztery składniki:

      • Składnik HCI komunikuje się z lokalnym radiem obsługującym łączność Bluetooth za pośrednictwem interfejsu kontrolera hosta (HCI) zdefiniowanego w specyfikacji Bluetooth. Ponieważ wszystkie urządzenia radiowe z obsługą połączenia Bluetooth implementują specyfikację HCI, usługa BthPort może komunikować się z dowolnym radiem obsługującym łączność Bluetooth, niezależnie od producenta lub modelu.

      • Składnik SCO implementuje protokół synchronizacji Connection-Oriented (SCO). Ten protokół obsługuje tworzenie połączeń punkt-punkt z urządzeniem zdalnym. Klienci SCO komunikują się z interfejsem SCO przez kompilowanie i wysyłanie bloków żądań Bluetooth (BRB).

      • L2CAP implementuje protokół kontroli i adaptacji łącza logicznego Bluetooth. Ten protokół obsługuje tworzenie bezstratnego kanału do urządzenia zdalnego. Klienci L2CAP komunikują się z interfejsem L2CAP przez budowanie i wysyłanie BRBs.

      • Protokół SDP implementuje protokół odnajdywania usług Bluetooth.

    • BthUsb.sys: miniport, który abstrahuje interfejs magistrali od BthPort.