Condividi tramite


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)

Vedi anche

BRB_HEADER

BRB_L2CA_ACL_TRANSFER

BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_OPEN_CHANNEL_RESPONSE