IOCTL Bluetooth
La pile de pilotes Bluetooth fournit aux pilotes de profil plusieurs IOCTL pour collecter des informations sur :
Radio Bluetooth locale et système.
Appareils Bluetooth distants.
Appareil qui a provoqué le chargement d’un pilote de profil par le Gestionnaire d’Plug-and-Play (PnP).
Pour collecter des informations sur la radio et le système Bluetooth locaux, un pilote de profil utilise IOCTL_BTH_GET_LOCAL_INFO. Une fois le iocTL retourné, son membre AssociatedIrp.SystemBuffer contient un pointeur vers une structure de BTH_LOCAL_RADIO_INFO qui contient des informations sur la radio et le système Bluetooth locaux, y compris les indicateurs qui indiquent si la radio locale peut être découverte et connectée. La structure de BTH_LOCAL_RADIO_INFO retournée contient une structure BTH_DEVICE_INFO , qui contient des informations spécifiques au système, et une structure de BTH_RADIO_INFO , qui contient des informations locales spécifiques aux radios.
Pour collecter des informations sur un périphérique Bluetooth distant spécifique, un pilote de profil utilise IOCTL_BTH_GET_RADIO_INFO. Une fois que iocTL est retourné, son membre AssociatedIrp.SystemBuffer contient un pointeur vers une structure de BTH_RADIO_INFO qui fournit des informations sur la radio à distance spécifique, y compris si la radio distante peut être découverte et connectée.
Pour collecter des informations sur toutes les radios distantes qui ont été découvertes, un pilote de profil utilise IOCTL_BTH_GET_DEVICE_INFO. Une fois que le IOCTL est retourné, son membre AssociatedIrp.SystemBuffer contient un pointeur vers une structure de BTH_DEVICE_INFO_LIST qui contient un tableau de structures BTH_DEVICE_INFO. La structure BTH_DEVICE_INFO_LIST contient une entrée de tableau pour chaque radio distante découverte. L’API BluetoothGetDeviceInfo en mode utilisateur utilise cette fonctionnalité pour retourner des informations sur toutes les radios distantes.
Pour collecter des informations sur l’appareil distant qui a provoqué le chargement du Gestionnaire PnP, un pilote de profil utilise IOCTL_INTERNAL_BTHENUM_GET_DEVINFO. Une fois le IOCTL retourné, son membre AssociatedIrp.SystemBuffer contient un pointeur vers une structure de BTH_DEVICE_INFO qui contient des informations sur l’appareil distant, y compris son adresse d’appareil Bluetooth, son état et ses paramètres de classe d’appareil (CoD).
Un pilote de profil utilise IOCTL_INTERNAL_BTHENUM_GET_ENUMINFO pour obtenir des informations sur l’appareil et le service sous-jacents qui ont provoqué le chargement du pilote de profil par le gestionnaire PnP. Une fois le iocTL retourné, son membre AssociatedIrp.SystemBuffer contient un pointeur vers une structure de BTH_ENUMERATOR_INFO qui contient des informations fournies par le fournisseur sur l’appareil, notamment le numéro de port, les indicateurs d’appareil, l’ID du fournisseur et l’ID de produit.
Pour plus d’informations sur l’utilisation des IOCTL et des BRB Bluetooth, consultez Création et envoi d’un BRB.