Share via


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

Weitere Informationen

BRB_HEADER

BRB_L2CA_ACL_TRANSFER

BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_OPEN_CHANNEL_RESPONSE