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, les appareils compatibles Bluetooth peuvent se localiser les uns les autres et établir des connexions. Entre ces connexions, les appareils peuvent échanger des données et interagir les uns avec les autres via diverses applications.
L’image suivante montre les modules de la pile de pilotes Bluetooth, ainsi que les pilotes personnalisés possibles en mode utilisateur et en mode noyau non inclus dans Windows Vista et versions ultérieures. Ces pilotes personnalisés sont appelés pilotes de profil.
Mode utilisateur
Application en mode utilisateur : application en mode utilisateur qui 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 être liées à BthProps.lib, au lieu d’IrProps.lib, afin d’utiliser des API, telles que BluetoothSetLocalServiceInfo.
Exemples de pilotes de profil
Pilote du mode noyau WAP : le composant WAP (Wireless Application Protocol) est un exemple de pilote de profil qui communique entre la pile réseau Windows et BthPort, en accédant à l’interface L2CAP et, éventuellement, à l’interface SDP 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, en accédant aux interfaces SCO contenues dans cette dernière. Les profils possibles incluent le profil mains libres (HFP), le profil de casque (HSP), le profil de téléphonie sans fil (CTP) et le profil d’intercom (ICP). Ce pilote de profil est inclus avec 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 pour 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. Utilisez le composant BthProps pour le nouveau développement.
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 par le biais d’appels de procédure distante (RPC). En outre, BthProps effectue des échanges d’épingles avec BthPort via des IOCTL privés. Notez que 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 à Bthport.
BthCi : programme d’installation de la classe Bluetooth.
WshBth : composant d’assistance de socket Windows Bluetooth. WshBth est appelé par la couche de sockets Windows pour effectuer des opérations de socket. WshBth appelle principalement RfComm via l’interface TDI. WshBth appelle également BthServ pour effectuer des requêtes à distance sur les appareils et BthPort pour effectuer des requêtes radio locales.
FSquirt : composant OBEX (Nonextensible Object Exchange) qui permet aux utilisateurs d’envoyer et de recevoir des fichiers via une connexion Bluetooth ouverte. OBEX communique avec les appareils distants via RFCOMM qui utilise le composant WshBth.
BthPrint : composant qui implémente le profil de remplacement du câble dur (HCRP). Ce composant permet au système d’impression d’envoyer et de recevoir des données à partir d’imprimantes compatibles Bluetooth. BthPrint communique avec l’interface SDP dans BthPort pour interroger les 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 la même façon que le module USB HID.
BthPan : composant qui implémente le profil PAN (Personal Area Network), en fournissant des connexions TCP via 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 de sembler être un transport réseau. C’est ainsi que WshBth se connecte au Bluetooth pour envoyer et recevoir des données à partir des 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 : composant qui implémente les ports COM virtuels et la mise en réseau à distance (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 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 un 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 et crée un PDO pour le service HID qui oblige le gestionnaire PnP à charger HidBth.
Notes
BthEnum ne crée pas de PDO pour les services qui apparaissent dans la clé de Registre UnsupportedServices , comme spécifié dans Bth.inf.
BthLEEnum : pilote de bus Bluetooth Low Energy (LE). BthLEEnum implémente le protocole ATT et le profil GATT. Il 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 par le biais de l’interface de 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 de Connection-Oriented synchrone (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 (BBR).
- 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 vers un appareil distant. Les clients L2CAP communiquent avec l’interface L2CAP en créant et en envoyant des blocs de requête Bluetooth (BRB).
- SDP implémente le protocole de découverte de service Bluetooth.
BthUsb.sys: miniport qui extrait l’interface de bus de BthPort.