Partager via


Pile de pilotes Bluetooth

La pile de pilotes Bluetooth comprend la partie principale de la prise en charge fournie par Microsoft pour le protocole Bluetooth. Avec cette pile de protocoles, les appareils compatibles Bluetooth peuvent se localiser et établir des connexions. Sur ces connexions, les appareils peuvent échanger des données et interagir entre eux via différentes applications.

L’image suivante montre les modules de la pile de pilotes Bluetooth, ainsi que les pilotes personnalisés en mode utilisateur et en mode noyau non inclus dans Windows Vista et les versions ultérieures. Les pilotes personnalisés sont appelés pilotes de profil.

Diagramme montrant l’architecture de la pile des pilotes Bluetooth.

L’image d’architecture comprend les composants et exemples suivants :

  • Mode utilisateur

    • Application en mode utilisateur : une application en mode utilisateur accède à la pile des pilotes Bluetooth via des API publiées. Pour plus d’informations, consultez À propos du Bluetooth dans la documentation du Kit de développement logiciel (SDK) Windows.

      Les applications en mode utilisateur doivent se lier à BthProps.lib, au lieu d’IrProps.lib, pour utiliser des API telles que BluetoothSetLocalServiceInfo.

  • Exemples de pilotes de profil

    • Pilote de mode noyau WAP : Le composant du protocole d'application sans fil (WAP) est un exemple de pilote de profil qui communique entre la pile de réseau Windows et BthPort. Il accède à l’interface L2CAP et accède éventuellement à l’interface SDP (Service Discovery Protocol) contenue dans L2CAP. D’autres profils possibles incluent le profil de distribution audio avancée (A2DP), le profil de contrôle à distance A/V (AVRCP), le profil de distribution A/V générique (GAVDP) et le profil CIP (Common ISDN Access).

    • Pilote en mode noyau audio : exemple de pilote de profil qui communique entre la pile audio Windows et BthPort, qui accède aux interfaces SCO contenues dans BthPort. Les profils possibles incluent le profil mains libres (HFP), le profil casque (HSP), le profil de téléphonie sans fil (CTP) et le profil intercom (IPC). Ce pilote de profil est inclus dans Windows à partir de Windows 8.

    • Profil de moniteur de fréquence cardiaque Bluetooth LE : exemple de pilote de profil Bluetooth LE qui communique avec l’API Bluetooth Low Energy (LE).

  • Composants de pile de pilotes Bluetooth

    • IrProps : composant utilisé pour la compatibilité descendante avec les pilotes de profil créés pour la première version de la pile de pilotes Bluetooth. IrProps est fourni uniquement pour la compatibilité descendante. Pour le nouveau développement, utilisez le composant BthProps .

    • BthProps : composant qui contient l’implémentation de l’interface utilisateur Bluetooth, ainsi que l’implémentation des API Bluetooth auxquelles les applications en mode utilisateur accèdent. Ce composant envoie des demandes à BthServ via des appels de procédure distante (RPC). En outre, BthProps effectue des échanges de broches avec BthPort via des IOCTLs privés. BthProps s’exécute sur n’importe quel système avec une radio bluetooth.

    • BthServ : service responsable de la mise en cache et du transfert des données d’enquête vers Bthport.

    • BthCi : installateur de classe Bluetooth.

    • WshBth : le module d'assistance pour les sockets Windows Bluetooth. WshBth est appelé par la couche sockets Windows pour effectuer des opérations de socket. WshBth appelle principalement RFCOMM via l’interface TDI (Transport Driver Interface). WshBth appelle également BthServ pour effectuer des interrogations sur les appareils distants et vers BthPort pour réaliser des interrogations radio locales.

    • FSquirt : composant OBEX (Nonextensible Object Exchange) qui permet aux utilisateurs d’envoyer et de recevoir des fichiers sur une connexion Bluetooth ouverte. OBEX communique avec des appareils distants via RFCOMM qui utilise le composant WshBth.

    • BthPrint : composant qui implémente le Hardcopy Cable Replacement Profile (HCRP). Ce composant permet au système d’impression d’envoyer et de recevoir des données à partir d’imprimantes bluetooth. BthPrint communique avec l’interface SDP de BthPort pour interroger des imprimantes distantes et l’interface L2CAP dans BthPort pour envoyer et recevoir des données.

    • HidBth : composant qui implémente le profil HID (Human Interface Device). HidBth communique également avec les interfaces L2CAP et SDP dans BthPort. HidBth se connecte à la pile HID de manière similaire au module HID USB.

    • BthPan : composant qui implémente le profil PAN (Personal Area Network), qui fournit des connexions TCP sur une connexion Bluetooth ouverte. Dans Windows Vista et Windows XP, BthPan prend uniquement en charge les connexions sortantes. BthPan est également un client du composant BthPort et utilise les interfaces L2CAP et SDP.

    • RFCOMM : composant qui implémente le protocole d’émulation de câble série Bluetooth. RFCOMM utilise également les interfaces L2CAP et SDP trouvées dans BthPort. Le bord supérieur de RFCOMM expose l’interface TDI, ce qui permet à ce composant d’apparaître comme un transport réseau. Cette approche est la façon dont WshBth se connecte au Bluetooth pour envoyer et recevoir des données provenant d’API en mode utilisateur.

      Les applications en mode utilisateur peuvent accéder à RFCOMM à l’aide des interfaces Winsock décrites dans le Kit de développement logiciel (SDK) Windows.

    • BthModem : le composant qui implémente les ports COM virtuels et le réseau commuté (DUN). BthModem dirige toutes les opérations d’E/S et de contrôle vers RFCOMM via une interface TDI. Le bord supérieur de BthModem communique avec le fichier Serial.sys pour donner l’apparence d’être un port COM sans fil.

    • BthEnum : Pilote de bus Bluetooth. BthEnum communique avec le gestionnaire Plug-and-Play (PnP) pour créer et détruire des objets d’appareil utilisés pour activer les services Bluetooth. BthEnum crée une PDO pour chaque service pris en charge par un appareil distant connecté. Par exemple, lorsqu’un utilisateur connecte une souris compatible Bluetooth, Windows découvre que la souris prend en charge le service Bluetooth HID. Windows crée une PDO pour le service HID, ce qui pousse le gestionnaire PnP à charger HidBth.

      Remarque

      BthEnum ne crée pas de PDO pour les services qui apparaissent dans la clé de Registre UnsupportedServices, comme spécifié dans le fichier Bth.inf.

    • BthLEEnum : Le pilote de bus Bluetooth Low Energy (LE). BthLEEnum implémente le protocole ATT et le profil GATT. Ce pilote est également chargé de créer des PDO pour représenter les appareils distants et leurs services principaux.

    • BthPort : minidriver chargé par le miniport BthUsb. BthPort fournit quatre composants :

      • Le composant HCI communique avec la radio bluetooth locale via l’interface du contrôleur d’hôte (HCI) définie dans la spécification Bluetooth. Étant donné que toutes les radios bluetooth implémentent la spécification HCI, BthPort est en mesure de communiquer avec n’importe quelle radio bluetooth, quel que soit le fabricant ou le modèle.

      • Le composant SCO implémente le protocole Synchronous Connection-Oriented (SCO). Ce protocole prend en charge la création de connexions point à point à un appareil distant. Les clients SCO communiquent avec l’interface SCO en créant et en envoyant des blocs de requête Bluetooth (BRB).

      • L2CAP implémente le protocole d’adaptation et de contrôle de liaison logique Bluetooth. Ce protocole prend en charge la création d’un canal sans perte sur un appareil distant. Les clients L2CAP communiquent avec l’interface L2CAP en créant et en envoyant des brb.

      • SDP implémente le protocole de découverte de service Bluetooth.

    • BthUsb.sys: miniport qui extrait l’interface de bus de BthPort.