struttura _BRB_SCO_TRANSFER (bthddi.h)
La struttura _BRB_SCO_TRANSFER descrive un buffer da cui leggere i dati isocroni o scrivere dati isocroni in un canale SCO.
Sintassi
struct _BRB_SCO_TRANSFER {
BRB_HEADER Hdr;
BTH_ADDR BtAddress;
SCO_CHANNEL_HANDLE ChannelHandle;
ULONG TransferFlags;
ULONG BufferSize;
PVOID Buffer;
PMDL BufferMDL;
ULONGLONG DataTag;
};
Members
Hdr
Struttura BRB_HEADER che contiene informazioni sull'oggetto BRB corrente.
BtAddress
Indirizzo Bluetooth del dispositivo remoto.
ChannelHandle
Handle del canale SCO restituito dallo stack di driver Bluetooth in risposta a una richiesta di BRB_SCO_OPEN_CHANNEL o BRB_SCO_OPEN_CHANNEL_RESPONSE precedente.
TransferFlags
Flag che specificano il comportamento di base di BRB. I valori di flag validi sono elencati nella tabella seguente.
Flag | Descrizione |
---|---|
SCO_TRANSFER_DIRECTION_IN | Se questo bit è impostato, BRB legge i dati isocroni da un dispositivo remoto tramite il canale SCO. |
SCO_TRANSFER_DIRECTION_OUT | Se questo bit è impostato, BRB scrive i dati isocroni in un dispositivo remoto tramite il canale SCO. |
BufferSize
Dimensioni, in byte, del buffer di input descritto dal membro Buffer di questa struttura.
Buffer
Puntatore al buffer di input. Questo valore deve essere NULL quando il membro buffer non viene utilizzato.
BufferMDL
Puntatore al buffer di input MDL. Questo valore deve essere NULL quando il membro BufferMDL non viene utilizzato.
DataTag
Scrittura SCO
Commenti
Per leggere dati isocroni da o scrivere dati isocroni in una connessione SCO, i driver di profilo devono compilare e inviare una richiesta di BRB_SCO_TRANSFER .
Ogni connessione SCO è bidirezionale e può essere letta e scritta contemporaneamente.
I DATABASE di lettura rimarranno in sospeso fino all'arrivo dei dati o fino a quando il driver del profilo non li scarica. È consigliabile che i driver di livello superiore abbiano almeno due BRB di lettura in sospeso aperti in qualsiasi momento per accettare i dati in ingresso dal dispositivo remoto.
Lo stack di driver Bluetooth non fornisce buffering per i dati isocroni in ingresso. Pertanto, un piccolo divario tra il completamento di un IRP di lettura e l'invio del successivo può causare la perdita di dati.
Se Buffer e BufferMDL contengono valori non NULL , BufferMDL ha la precedenza.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Versioni:_Supported in Windows Vista e versioni successive. |
Intestazione | bthddi.h (include Bthddi.h) |