struttura _BRB_L2CA_ACL_TRANSFER (bthddi.h)
La struttura _BRB_L2CA_ACL_TRANSFER descrive un buffer da cui leggere i dati asincroni o scrivere dati asincroni in un canale L2CAP.
Sintassi
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;
};
Members
Hdr
Struttura BRB_HEADER che contiene informazioni sull'oggetto BRB corrente.
BtAddress
Indirizzo del dispositivo remoto.
ChannelHandle
Handle del canale L2CAP restituito dallo stack di driver Bluetooth in risposta a un BRB_L2CA_OPEN_CHANNEL precedente o BRB_L2CA_OPEN_CHANNEL_RESPONSE richiesta.
TransferFlags
Combinazione di flag che specifica il comportamento di base dell'interfaccia. È possibile impostare più flag contemporaneamente. I valori di flag validi sono descritti nella tabella seguente:
Flag | Descrizione |
---|---|
ACL_SHORT_TRANSFER_OK | Se questo bit è impostato, l'operazione di lettura può essere completata prima che il buffer sia pieno. Questa impostazione può essere impostata solo in combinazione con ACL_TRANSFER_DIRECTION_IN. |
ACL_TRANSFER_DIRECTION_IN | Se questo bit è impostato, i dati verranno ricevuti dal dispositivo remoto. Questo flag non può essere impostato in combinazione con ACL_TRANSFER_DIRECTION_OUT. |
ACL_TRANSFER_DIRECTION_OUT | Se questo bit è impostato, i dati devono essere inviati al dispositivo remoto. Questo flag non può essere impostato in combinazione con ACL_TRANSFER_DIRECTION_IN. |
ACL_TRANSFER_TIMEOUT | L'operazione di lettura deve essere arrestata dopo il numero di millisecondi specificato nel membro Timeout . |
BufferSize
Dimensione del buffer, in byte.
Buffer
Puntatore al buffer di input.
BufferMDL
Puntatore al buffer di input MDL.
Timeout
Durata, in millisecondi, prima che l'azione di lettura venga annullata e tutti i dati utilizzati a questo punto vengano persi.
RemainingBufferSize
Quantità di spazio, in byte, lasciata nel buffer dopo la chiamata BRB.
Commenti
Per leggere dati asincroni o scrivere dati asincroni in un canale L2CAP, i driver di profilo devono compilare e inviare una richiesta di BRB_L2CA_ACL_TRANSFER .
Ogni connessione L2CAP è bidirezionale e può essere letta e scritta contemporaneamente.
Se non viene specificato alcun timeout, i brb associati a una richiesta di lettura rimarranno in sospeso fino all'arrivo dei dati o fino a quando non vengono annullati. I driver del profilo possono lasciare una richiesta di lettura in sospeso per accettare i dati in ingresso dal dispositivo remoto.
Lo stack di driver Bluetooth fornisce un buffer dei dati in ingresso, quindi non è necessario controllare continuamente se un IRP di lettura è in sospeso. Un driver di profilo può specificare la quantità di buffering da fornire nel membro IncomingQueueDepth associato a una richiesta di BRB_L2CA_OPEN_CHANNEL .
Se il flag ACL_TRANSFER_TIMEOUT è impostato nel membro TransferFlags e la durata specificata nel membro Timeout scade, la richiesta di BRB_L2CA_ACL_TRANSFER verrà completata e restituirà un errore.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Versioni:_Supported in Windows Vista e versioni successive. |
Intestazione | bthddi.h (include Bthddi.h) |