_BRB_L2CA_ACL_TRANSFER Struktur (bthddi.h)
Die _BRB_L2CA_ACL_TRANSFER Struktur beschreibt einen Puffer zum Lesen asynchroner Daten aus oder schreiben asynchrone 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;
};
Angehörige
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 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 Kennzeichenwerte werden in der folgenden Tabelle beschrieben:
Flagge | 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 Die Daten vom Remotegerät empfangen. Dieses Kennzeichen 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 Kennzeichen kann nicht in Kombination mit ACL_TRANSFER_DIRECTION_IN festgelegt werden. |
ACL_TRANSFER_TIMEOUT | Der Lesevorgang sollte nach der Anzahl von Millisekunden beendet werden, die im Timeout Member angegeben sind. |
BufferSize
Die Größe des Puffers 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 daten, die an diesem Punkt verbraucht werden, gehen verloren.
RemainingBufferSize
Der Speicherplatz in Bytes, der nach dem BRB-Aufruf im Puffer verbleibt.
Bemerkungen
Um asynchrone Daten aus einem L2CAP-Kanal zu lesen oder asynchrone Daten zu schreiben, sollten Profiltreiber erstellen und einer BRB_L2CA_ACL_TRANSFER Anforderung senden.
Jede L2CAP-Verbindung ist bidirektional und kann von und gleichzeitig geschrieben werden.
Wenn kein Timeout angegeben ist, bleiben BRBs, die einer Leseanforderung zugeordnet sind, ausstehen, bis Daten eingehen oder bis sie abgebrochen werden. Profiltreiber können eine Leseanforderung ausstehen lassen, um eingehende Daten vom Remotegerät zu akzeptieren.
Der Bluetooth-Treiberstapel bietet einige Pufferung eingehender Daten, daher ist es nicht erforderlich, kontinuierlich zu überprüfen, ob ein Lese-IRP aussteht. Ein Profiltreiber kann die Puffermenge angeben, die in der IncomingQueueDepth Mitglied bereitgestellt werden soll, das einer BRB_L2CA_OPEN_CHANNEL Anforderung zugeordnet ist.
Wenn das ACL_TRANSFER_TIMEOUT Flag im TransferFlags Mitglied festgelegt ist und die im Timeout Mitglied angegebene Dauer abläuft, wird die BRB_L2CA_ACL_TRANSFER Anforderung abgeschlossen und gibt einen Fehler zurück.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Versionen:_Supported in Windows Vista und höher. |
Header- | bthddi.h (include Bthddi.h) |