structure _BRB_L2CA_ACL_TRANSFER (bthddi.h)
La structure _BRB_L2CA_ACL_TRANSFER décrit une mémoire tampon à partir de laquelle lire des données asynchrones ou écrire des données asynchrones dans un canal L2CAP.
Syntaxe
struct _BRB_L2CA_ACL_TRANSFER {
BRB_HEADER Hdr;
BTH_ADDR BtAddress;
L2CAP_CHANNEL_HANDLE ChannelHandle;
ULONG TransferFlags;
ULONG BufferSize;
PVOID Buffer;
PMDL BufferMDL;
LONGLONG Timeout;
ULONG RemainingBufferSize;
};
Membres
Hdr
Structure BRB_HEADER qui contient des informations sur le BRB actuel.
BtAddress
Adresse de l’appareil distant.
ChannelHandle
Le handle de canal L2CAP qui a été retourné par la pile de pilotes Bluetooth en réponse à un BRB_L2CA_OPEN_CHANNEL antérieur ou BRB_L2CA_OPEN_CHANNEL_RESPONSE demande.
TransferFlags
Combinaison d’indicateurs qui spécifie le comportement de base de l’interface. Plusieurs indicateurs peuvent être définis en même temps. Les valeurs d’indicateur valides sont décrites dans le tableau suivant :
Indicateur | Description |
---|---|
ACL_SHORT_TRANSFER_OK | Si ce bit est défini, l’opération de lecture peut se terminer avant que la mémoire tampon soit pleine. Cela ne peut être défini qu’en combinaison avec ACL_TRANSFER_DIRECTION_IN. |
ACL_TRANSFER_DIRECTION_IN | Si ce bit est défini, les données sont reçues de l’appareil distant. Cet indicateur ne peut pas être défini en combinaison avec ACL_TRANSFER_DIRECTION_OUT. |
ACL_TRANSFER_DIRECTION_OUT | Si ce bit est défini, les données doivent être envoyées à l’appareil distant. Cet indicateur ne peut pas être défini en combinaison avec ACL_TRANSFER_DIRECTION_IN. |
ACL_TRANSFER_TIMEOUT | L’opération de lecture doit être arrêtée après le nombre de millisecondes spécifié dans le membre Timeout . |
BufferSize
Taille en octets de la mémoire tampon.
Buffer
Pointeur vers la mémoire tampon d’entrée.
BufferMDL
Pointeur vers la mémoire tampon d’entrée MDL.
Timeout
Durée, en millisecondes, avant l’annulation de l’action de lecture et la perte des données consommées à ce stade.
RemainingBufferSize
Quantité d’espace, en octets, restant dans la mémoire tampon après l’appel BRB.
Remarques
Pour lire des données asynchrones à partir de ou écrire des données asynchrones dans un canal L2CAP, les pilotes de profil doivent générer et envoyer une requête BRB_L2CA_ACL_TRANSFER .
Chaque connexion L2CAP est bidirectionnelle et peut être lue et écrite simultanément.
Si aucun délai d’expiration n’est spécifié, les brbs associés à une demande de lecture restent en attente jusqu’à ce que les données arrivent ou jusqu’à ce qu’elles soient annulées. Les pilotes de profil peuvent laisser une demande de lecture en attente afin d’accepter les données entrantes de l’appareil distant.
La pile de pilotes Bluetooth fournit une mise en mémoire tampon des données entrantes. Il n’est donc pas nécessaire de case activée en continu si une IRP de lecture est en attente. Un pilote de profil peut spécifier la quantité de mise en mémoire tampon à fournir dans le membre IncomingQueueDepth associé à une demande de BRB_L2CA_OPEN_CHANNEL .
Si l’indicateur ACL_TRANSFER_TIMEOUT est défini dans le membre TransferFlags et que la durée spécifiée dans le membre Délai d’expiration expire, la demande BRB_L2CA_ACL_TRANSFER se termine et retourne une erreur.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Versions :_Supported dans Windows Vista et versions ultérieures. |
En-tête | bthddi.h (inclure Bthddi.h) |