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;
};
Membri
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.
Bandiera | 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 non viene utilizzato il membro buffer.
BufferMDL
Puntatore al buffer di input MDL. Questo valore deve essere NULL quando non viene utilizzato il membro BufferMDL.
DataTag
Scrittura SCO
Osservazioni
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.
Le brb 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 sia buffer che buffer contengono valori nullnon, bufferMDL ha la precedenza.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Versioni:_Supported in Windows Vista e versioni successive. |
intestazione | bthddi.h (include Bthddi.h) |