Freigeben über


_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)

Siehe auch

BRB_HEADER

BRB_L2CA_ACL_TRANSFER

BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_OPEN_CHANNEL_RESPONSE