Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Cet article est destiné 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 le Panneau de configuration pour rechercher tous les appareils dans la plage de l’ordinateur.
- Sélectionnez l’appareil avec lequel 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 (Service Discovery Protocol) 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 parvient pas à localiser un pilote adéquat pour l’appareil, il invite l'utilisateur à insérer le support contenant le fichier INF avec les informations de configuration de l'appareil pour le pilote de profil.
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 le Bluetooth SIG, ainsi que les GUID personnalisés non définis par le Bluetooth SIG.
Remarque
L’outilguidgen.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 afin de créer un GUID de service permettant de dévoiler les fonctionnalités. 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 sections et directives de fichier INF.
Identifiants Plug-and-Play
La pile de pilotes Bluetooth génère des ID matériels en fonction des modèles suivants :
- BTHENUM\{ ServiceGUID}_VID& nnnnnnnn
- BTHENUM\{ ServiceGUID}_VID& nnnnnnnn_PID& nnnn
- BTHENUM\{ ServiceGUID}_LOCALMFG& nnnn
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 des pilotes Bluetooth peut être limitée afin de charger votre pilote de profil et le logiciel pour s'exécuter uniquement sur une version spécifique d'un appareil distant à l'aide des ID Plug and Play de l'appareil distant et du fichier INF. La pile de pilotes Bluetooth génère une paire VID/PID uniquement si l’appareil publie un ID Plug-and-Play que la pile peut détecter à l’aide de SDP. Par exemple:
BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_VID& nnnnnnnn_PID& nnnn
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