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;
};

Membri

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:

Bandiera 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, in byte, del buffer.

Buffer

Puntatore al buffer di input.

BufferMDL

Puntatore al buffer di input MDL.

Timeout

Durata, espressa in millisecondi, prima dell'annullamento dell'azione di lettura e perdita di tutti i dati utilizzati a questo punto.

RemainingBufferSize

Quantità di spazio, in byte, lasciata nel buffer dopo la chiamata BRB.

Osservazioni

Per leggere dati asincroni da 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 database di archiviazione 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 del 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.

Fabbisogno

Requisito Valore
client minimo supportato Versioni:_Supported in Windows Vista e versioni successive.
intestazione bthddi.h (include Bthddi.h)

Vedere anche

BRB_HEADER

BRB_L2CA_ACL_TRANSFER

BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_OPEN_CHANNEL_RESPONSE