Installation d’un appareil Bluetooth
Important
Cette rubrique s’adresse aux programmeurs. Si vous êtes un client qui rencontre des problèmes d’installation d’appareils Bluetooth, consultez Appairer un appareil Bluetooth dans Windows
Il existe deux types d’installation pour les pilotes de profil Bluetooth :
- Installation côté client pour les appareils distants où l’appareil distant publie ses services et l’ordinateur se connecte à celui-ci. Voici quelques exemples : souris, claviers et imprimantes.
- Installation côté serveur où l’ordinateur publie des services et des appareils distants peut se connecter à l’ordinateur pour utiliser ces services. Par exemple, un fournisseur peut créer une installation côté serveur pour permettre à un appareil mobile d’imprimer sur une imprimante attachée à l’ordinateur.
Ces deux types d’installation nécessitent des procédures d’installation différentes.
Installation d’un pilote de profil côté client
Un utilisateur qui souhaite utiliser un appareil compatible Bluetooth amène l’appareil dans la plage de l’ordinateur et lance une connexion de l’ordinateur à l’appareil distant à l’aide de la séquence d’installation suivante pour un pilote de profil côté client.
- Sélectionnez Ajouter un appareil Bluetooth dans Panneau de configuration pour rechercher tous les appareils dans la plage de l’ordinateur.
- Sélectionnez l’appareil à associer.
- Associez l’appareil à la radio locale, ce qui peut ou non impliquer un échange de code confidentiel.
- La radio locale émet une enquête SDP pour identifier les services pris en charge sur l’appareil distant.
- L’Assistant Nouveau matériel trouvé recherche les pilotes appropriés sur le disque dur local et sur Windows Update.
- Si l’Assistant Nouveau matériel trouvé ne trouve pas de pilote approprié pour l’appareil, il invite l’utilisateur à insérer le support d’installation du pilote de profil qui contient le fichier d’informations de configuration du périphérique du pilote de profil (fichier INF).
Installation d’un pilote de profil côté serveur
La pile de pilotes Bluetooth prend en charge les GUID de service tels que définis par bluetooth SIG et les GUID personnalisés non définis par bluetooth SIG.
Remarque
L’outil guidgen.exe fourni avec le Kit de développement logiciel (SDK) Microsoft Windows peut être utilisé pour créer des GUID personnalisés.
Une application d’installation en mode utilisateur doit être écrite pour exposer les fonctionnalités informatiques que les appareils Bluetooth distants peuvent utiliser.
L’application d’installation doit communiquer avec la pile de pilotes Bluetooth pour créer un GUID de service pour que les fonctionnalités à exposer. Les fournisseurs spécifient le GUID de service dans l’application et dans leur fichier INF d’installation de l’appareil.
L’application d’installation doit appeler l’API bluetoothSetLocalServiceInfo en mode utilisateur. Avant que l’application puisse appeler cette API, l’application doit disposer du privilège de sécurité SE_LOAD_DRIVER_NAME. L’exemple de code suivant montre comment obtenir ce privilège. Notez que l’exemple ne montre pas la gestion des erreurs.
HANDLE procToken;
LUID luid;
TOKEN_PRIVILEGES tp;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &procToken);
LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, &luid);
Tp.PrivilegeCount = 1;
Tp.privileges[0].Luid = luid;
Tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(procToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, (PDWORD)NULL)
Fichier INF du pilote de profil
Le fichier INF d’un pilote de profil contient des informations sur un appareil Bluetooth pour l’installation côté client. Pour une installation côté serveur, le fichier INF spécifie un ID d’appareil qui correspond au GUID de service créé par l’application d’installation. Tous les appareils Bluetooth sont membres de la classe Bluetooth . Le programme d’installation de classe Bluetooth (Bthci.dll) permet d’installer des pilotes de profil.
Pour plus d’informations sur la création et la distribution de fichiers INF et l’installation de pilotes, consultez Création d’un fichier INF et des sections et directives de fichier INF.
ID de Plug-and-Play
La pile de pilotes Bluetooth génère des ID matériels en fonction des modèles suivants :
- BTHENUM\{ ServiceGUID}_VID& nnnnnnnnnn
- BTHENUM\{ ServiceGUID}_VID& nnnnnnnn_PID& nnnn
- BTHENUM\{ ServiceGUID}_LOCALMFG& nn
La pile de pilotes Bluetooth génère des ID compatibles en fonction du modèle suivant :
- BTHENUM\{ ServiceGUID}
ServiceGUID est un GUID 16 bits développé dans un GUID 128 bits, tel que défini par la spécification Bluetooth. Par exemple, {00001124-0000-1000-8000-00805F9B34FB} correspond à un appareil HID.
- Les huit chiffres suivants VID& correspondent au code d’ID du fournisseur.
- Les quatre chiffres suivants PID& correspondent au code d’ID de produit.
- Les quatre chiffres suivants LOCALMFG> correspondent au fabricant de la radio Bluetooth locale.
- Les balises VID/PID et LOCALMFG sont indépendantes les unes des autres.
L’ID d’appareil le plus générique est un ServiceGUID par lui-même. Par exemple :
BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}
La pile de pilotes Bluetooth peut être limitée pour charger votre pilote de profil et le logiciel pour s’exécuter uniquement sur une version spécifique d’un appareil distant à l’aide de Plug-and-Play ID dans l’appareil distant et le fichier INF. La pile de pilotes Bluetooth génère une paire VID/PID uniquement si l’appareil publie un ID de Plug-and-Play que la pile peut détecter à l’aide de SDP. Par exemple :
BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_VID& nnnnnnnn_PID& nnnnnn
La pile de pilotes Bluetooth peut être limitée pour charger le pilote de profil et le logiciel pour qu’ils s’exécutent uniquement sur une radio Bluetooth locale spécifique en spécifiant la balise LOCALMFG dans l’ID de l’appareil dans votre fichier INF. Par exemple :
BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_LOCALMFG& nnnn