IOCTL_BTH_GET_DEVICE_INFO IOCTL (bthioctl.h)
La requête IOCTL_BTH_GET_DEVICE_INFO retourne des informations sur toutes les radios mises en cache, précédemment découvertes à distance activées par Bluetooth.
Code principal
Mémoire tampon d’entrée
Le membre AssociatedIrp.SystemBuffer pointe vers une mémoire tampon pour une structure BTH_DEVICE_INFO_LIST.
Longueur de la mémoire tampon d’entrée
Longueur d’une structure BTH_DEVICE_INFO_LIST
Mémoire tampon de sortie
Le membre AssociatedIrp.SystemBuffer pointe vers une mémoire tampon qui contient une structure BTH_DEVICE_INFO_LIST. Le numOfDevices membre de la structure BTH_DEVICE_INFO_LIST contient le nombre d’appareils pour lesquels il existe des informations et un tableau de structures BTH_DEVICE_INFO ; une entrée de tableau pour chaque appareil.
Longueur de la mémoire tampon de sortie
Si la taille de la mémoire tampon de sortie passée n’est pas exactement sizeof(BTH_DEVICE_INFO_LIST)
plus le multiple correct de sizeof(BTH_DEVICE_INFO)
, la requête échoue avec STATUS_INVALID_BUFFER_SIZE.
Bloc d’état
Si la demande réussit, l'Information membre de la structure STATUS_BLOCK est définie sur la taille, en octets, de la mémoire tampon qui contient des informations sur le tableau d’appareils. La structure BTH_DEVICE_INFO_LIST contient le stockage de la première structure de BTH_DEVICE_INFO. Par conséquent, si aucun appareil n’est retourné, le membre Informations est défini sur la taille de la première structure.
Le membre Status est défini sur l’une des valeurs du tableau suivant.
Valeur d’état | Description |
---|---|
STATUS_SUCCESS | Le IOCTL s’est terminé avec succès. |
STATUS_INVALID_PARAMETER | La mémoire tampon d’entrée passée était NULL. |
STATUS_INVALID_BUFFER_SIZE | La mémoire tampon de sortie n’a pas été correctement dimensionnée. |
Remarques
Le IOCTL_BTH_GET_DEVICE_INFO IOCTL fournit des informations sur toutes les radios distantes précédemment découvertes.
Le numOfDevices membre de la structure BTH_DEVICE_INFO_LIST retourne le nombre total de structures BTH_DEVICE_INFO retournées par le IOCTL. Si le pilote appelant passe dans une mémoire tampon inférieure à la valeur du membre numOfDevices membre, seule une partie des structures disponibles est retournée. Les développeurs de pilotes Bluetooth doivent appeler IOCTL_BTH_GET_DEVICE_INFO avec une petite mémoire tampon, par exemple sizeof(BTH_DEVICE_INFO_LIST)
, puis utiliser le numOfDevices retourné membre pour dimensionner correctement la mémoire tampon pour un appel ultérieur.
La structure BTH_DEVICE_INFO_LIST inclut le stockage pour la première structure de BTH_DEVICE_INFO. Utilisez la formule suivante pour calculer la taille de mémoire tampon correcte pour un appel à IOCTL_BTH_GET_DEVICE_INFO :
Buffer=sizeof(BTH_DEVICE_INFO_LIST)+(NumOfDevices-1)*sizeof(BTH_DEVICE_INFO)
.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Versions :_Supported dans Windows Vista et versions ultérieures. |
d’en-tête | bthioctl.h (include Bthioctl.h) |
IRQL | <= PASSIVE_LEVEL |