_BRB_SCO_TRANSFER-Struktur (bthddi.h)
Die _BRB_SCO_TRANSFER-Struktur beschreibt einen Puffer, aus dem isochrone Daten gelesen oder isochrone Daten in einen SCO-Kanal geschrieben werden können.
Syntax
struct _BRB_SCO_TRANSFER {
BRB_HEADER Hdr;
BTH_ADDR BtAddress;
SCO_CHANNEL_HANDLE ChannelHandle;
ULONG TransferFlags;
ULONG BufferSize;
PVOID Buffer;
PMDL BufferMDL;
ULONGLONG DataTag;
};
Member
Hdr
Eine BRB_HEADER-Struktur , die Informationen zum aktuellen BRB enthält.
BtAddress
Die Bluetooth-Adresse des Remotegeräts.
ChannelHandle
Das SCO-Kanalhandle, das vom Bluetooth-Treiberstapel als Reaktion auf eine frühere BRB_SCO_OPEN_CHANNEL - oder BRB_SCO_OPEN_CHANNEL_RESPONSE-Anforderung zurückgegeben wurde.
TransferFlags
Flags, die das grundlegende Verhalten des BRB angeben. Gültige Flagwerte sind in der folgenden Tabelle aufgeführt.
Flag | Beschreibung |
---|---|
SCO_TRANSFER_DIRECTION_IN | Wenn dieses Bit festgelegt ist, liest der BRB isochrone Daten von einem Remotegerät über den SCO-Kanal. |
SCO_TRANSFER_DIRECTION_OUT | Wenn dieses Bit festgelegt ist, schreibt der BRB isochrone Daten über den SCO-Kanal auf ein Remotegerät. |
BufferSize
Die Größe des Eingabepuffers in Bytes, der vom Buffer-Element dieser Struktur beschrieben wird.
Buffer
Ein Zeiger auf den Eingabepuffer. Dieser Wert sollte NULL sein, wenn der Buffer-Member nicht verwendet wird.
BufferMDL
Ein Zeiger auf den MDL-Eingabepuffer. Dieser Wert sollte NULL sein, wenn der BufferMDL-Member nicht verwendet wird.
DataTag
SCO-Schreibvorgänge
Hinweise
Um isochrone Daten aus einer SCO-Verbindung zu lesen oder isochrone Daten in eine SCO-Verbindung zu schreiben, sollten Profiltreiber eine BRB_SCO_TRANSFER-Anforderungerstellen und senden.
Jede SCO-Verbindung ist bidirektional und kann gleichzeitig aus gelesen und in geschrieben werden.
Lese-BRBs bleiben ausstehend, bis Die Daten eintreffen oder der Profiltreiber sie leert. Es wird empfohlen, dass Treiber auf höherer Ebene jederzeit mindestens zwei ausstehende Lese-BRBs geöffnet haben, um eingehende Daten vom Remotegerät zu akzeptieren.
Der Bluetooth-Treiberstapel bietet keine Pufferung für eingehende isochrone Daten. Daher kann eine kleine Lücke zwischen dem Abschluss eines Lese-IRP und der Übermittlung der nächsten zu Datenverlust führen.
Wenn sowohl Buffer als auch BufferMDL Werte ungleich NULL enthalten, hat BufferMDL Vorrang.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Versionen:_Supported in Windows Vista und höher. |
Kopfzeile | bthddi.h (include Bthddi.h) |