_BRB_L2CA_ACL_TRANSFER-Struktur (bthddi.h)
Die _BRB_L2CA_ACL_TRANSFER-Struktur beschreibt einen Puffer zum Lesen asynchroner Daten aus einem L2CAP-Kanal oder zum Schreiben asynchroner Daten in einen L2CAP-Kanal.
Syntax
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;
};
Member
Hdr
Eine BRB_HEADER-Struktur , die Informationen zum aktuellen BRB enthält.
BtAddress
Die Adresse des Remotegeräts.
ChannelHandle
Das L2CAP-Kanalhandle, das vom Bluetooth-Treiberstapel als Reaktion auf eine frühere BRB_L2CA_OPEN_CHANNEL oder zurückgegeben wurde BRB_L2CA_OPEN_CHANNEL_RESPONSE Anforderung.
TransferFlags
Eine Kombination von Flags, die das grundlegende Verhalten der Schnittstelle angibt. Mehrere Flags können gleichzeitig festgelegt werden. Gültige Flagwerte werden in der folgenden Tabelle beschrieben:
Flag | Beschreibung |
---|---|
ACL_SHORT_TRANSFER_OK | Wenn dieses Bit festgelegt ist, kann der Lesevorgang abgeschlossen werden, bevor der Puffer voll ist. Dies kann nur in Kombination mit ACL_TRANSFER_DIRECTION_IN festgelegt werden. |
ACL_TRANSFER_DIRECTION_IN | Wenn dieses Bit festgelegt ist, werden Daten vom Remotegerät empfangen. Dieses Flag kann nicht in Kombination mit ACL_TRANSFER_DIRECTION_OUT festgelegt werden. |
ACL_TRANSFER_DIRECTION_OUT | Wenn dieses Bit festgelegt ist, werden Daten an das Remotegerät gesendet. Dieses Flag kann nicht in Kombination mit ACL_TRANSFER_DIRECTION_IN festgelegt werden. |
ACL_TRANSFER_TIMEOUT | Der Lesevorgang sollte nach der Im Timeout-Member angegebenen Anzahl von Millisekunden beendet werden. |
BufferSize
Die Größe des Cookies in Bytes.
Buffer
Ein Zeiger auf den Eingabepuffer.
BufferMDL
Ein Zeiger auf den MDL-Eingabepuffer.
Timeout
Die Dauer in Millisekunden, bevor die Leseaktion abgebrochen wird und alle bis zu diesem Punkt verbrauchten Daten verloren gehen.
RemainingBufferSize
Die Menge des Speicherplatzes in Bytes, der nach dem BRB-Aufruf im Puffer verbleibt.
Hinweise
Um asynchrone Daten aus einem L2CAP-Kanal zu lesen oder asynchrone Daten in einen L2CAP-Kanal zu schreiben, sollten Profiltreiber eine BRB_L2CA_ACL_TRANSFER Anforderung erstellen und senden.
Jede L2CAP-Verbindung ist bidirektional und kann gleichzeitig gelesen und geschrieben werden.
Wenn kein Timeout angegeben wird, bleiben brBs, die einer Leseanforderung zugeordnet sind, ausstehend, bis die Daten eintreffen oder bis sie abgebrochen werden. Profiltreiber können eine Leseanforderung ausstehen lassen, um eingehende Daten vom Remotegerät zu akzeptieren.
Der Bluetooth-Treiberstapel bietet eine gewisse Pufferung eingehender Daten, sodass es nicht notwendig ist, kontinuierlich zu überprüfen, ob ein Lese-IRP aussteht. Ein Profiltreiber kann den Pufferbetrag angeben, der im IncomingQueueDepth-Member bereitgestellt werden soll, das einer BRB_L2CA_OPEN_CHANNEL Anforderung zugeordnet ist.
Wenn das ACL_TRANSFER_TIMEOUT-Flag im TransferFlags-Element festgelegt ist und die im Timeout-Member angegebene Dauer abläuft, wird die BRB_L2CA_ACL_TRANSFER Anforderung abgeschlossen und gibt einen Fehler zurück.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Versionen:_Supported in Windows Vista und höher. |
Kopfzeile | bthddi.h (include Bthddi.h) |