IOCTL_BTHX_READ_HCI IOCTL (bthxddi.h)
IOCTL_BTHX_READ_HCI est utilisé pour lire les données et événements de liste de contrôle d’accès Bluetooth à partir de la couche de transport.
Code principal
Mémoire tampon d’entrée
Les pilotes de profil doivent utiliser KMDF et sa méthode WdfRequestRetrieveInputMemory pour récupérer les paramètres d’entrée. Par exemple, pour obtenir la mémoire tampon de sortie :
Status = WdfRequestRetrieveInputMemory(_Request, &ReqInMemory);
Pour plus d’informations, consultez les exemples Bluetooth WDK.
Longueur de la mémoire tampon d’entrée
La mémoire tampon décrit un UCHAR qui représente le type de lecture. La longueur de la mémoire tampon est la taille de l’UCHAR.
Mémoire tampon de sortie
Les pilotes de profil doivent utiliser KMDF et sa méthode WdfRequestRetrieveOutputMemory pour récupérer les paramètres d’entrée. Par exemple, pour obtenir la mémoire tampon de sortie :
Status = WdfRequestRetrieveOutputMemory(_Request, &ReqOutMemory);
Pour plus d’informations, consultez les exemples Bluetooth WDK.
Longueur de la mémoire tampon de sortie
Le membre AssociatedIrp.SystemBuffer pointe vers une mémoire tampon qui contient une structure BTHX_HCI_READ_WRITE_CONTEXT et des données supplémentaires associées à la lecture. La mémoire tampon doit être suffisamment grande pour contenir le plus grand événement ou paquet de données ACL, en fonction de son type de paquet.
Pour un paquet d’événements, il est FIELD_OFFSET(BTHX_HCI_READ_WRITE_CONTEXT, Data) +257 où 257 est la somme d’un en-tête d’événement de 2 octets et de données d’événement de 255 octets.
Pour un paquet de données ACL, il est FIELD_OFFSET(BTHX_HCI_READ_WRITE_CONTEXT, Data) + MaxAclTransferInSize où MaxAclTransferInSize est la valeur dans BTHX_CAPABILITIES retourné par le pilote de transport avec IOCTL_BTHX_QUERY_CAPABILITIES.
Bloc d’état
L'Information membre de la structure STATUS_BLOCK est défini sur le nombre d’octets de données retournés.
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_CANCELLED | Le IOCTL a été annulé. |
Remarques
La mémoire tampon d’entrée pointe vers le type de paquet en cours de lecture.
La mémoire tampon de sortie pointe vers une structure BTHX_HCI_READ_WRITE_CONTEXT dont membre DataLen spécifie le nombre d’octets dans le membre Data. Le type membre doit être défini sur le même type que le type de paquet d’entrée.
Le membre Information du STATUS_BLOCK doit être défini sur FIELD_OFFSET(BTHX_HCI_READ_WRITE_CONTEXT, Data) + DataLen.
La taille maximale du membre Data d’une liste de contrôle d’accès est déterminée par MaxAclTransferInSize, spécifiée dans la structure BTHX_CAPABILITIES. La taille maximale du membre Data d’un événement est de 255.
Cette IOCTL ne doit retourner STATUS_SUCCESS que dans le cadre d’une opération normale. Les erreurs spécifiques au transport ne doivent pas être retournées. Le IOCTL ne doit retourner STATUS_CANCELLED que si ce IOCTL a été annulé.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Prise en charge à partir de Windows 8. |
d’en-tête | bthxddi.h |
IRQL | <= PASSIVE_LEVEL |