IOCTL_BTH_GET_DEVICE_INFO IOCTL (bthioctl.h)
La requête IOCTL_BTH_GET_DEVICE_INFO retourne des informations sur toutes les radios distantes précédemment découvertes et mises en cache et compatibles 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 membre numOfDevices 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 demande échoue avec STATUS_INVALID_BUFFER_SIZE.
Bloc d’état
Si la demande réussit, le membre Information de la structure STATUS_BLOCK est défini 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 BTH_DEVICE_INFO. Par conséquent, si aucun appareil n’est retourné, le membre Information 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 | L’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 à distance précédemment découvertes.
Le membre numOfDevices de la structure BTH_DEVICE_INFO_LIST retourne le nombre total de BTH_DEVICE_INFO structures retournées par iocTL. Si le pilote appelant passe dans une mémoire tampon inférieure à la valeur du membre numOfDevices , seule une partie des structures disponibles est retournée. Les développeurs de pilotes Bluetooth doivent d’abord appeler IOCTL_BTH_GET_DEVICE_INFO avec une petite mémoire tampon, par exemple sizeof(BTH_DEVICE_INFO_LIST)
, puis utiliser le membre numOfDevices retourné pour dimensionner correctement la mémoire tampon pour un appel suivant.
La structure BTH_DEVICE_INFO_LIST inclut le stockage pour la première structure 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)
.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Versions :_Supported dans Windows Vista et versions ultérieures. |
En-tête | bthioctl.h (inclure Bthioctl.h) |
IRQL | <= PASSIVE_LEVEL |