estrutura _BRB_L2CA_ACL_TRANSFER (bthddi.h)
A estrutura _BRB_L2CA_ACL_TRANSFER descreve um buffer para ler dados assíncronos ou gravar dados assíncronos em um canal L2CAP.
Sintaxe
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;
};
Membros
Hdr
Uma estrutura BRB_HEADER que contém informações sobre o BRB atual.
BtAddress
O endereço do dispositivo remoto.
ChannelHandle
O identificador de canal L2CAP que foi retornado pela pilha do driver Bluetooth em resposta a um BRB_L2CA_OPEN_CHANNEL anterior ou BRB_L2CA_OPEN_CHANNEL_RESPONSE solicitação.
TransferFlags
Uma combinação de sinalizadores que especifica o comportamento básico da interface. Vários sinalizadores podem ser definidos ao mesmo tempo. Os valores de sinalizador válidos são descritos na tabela a seguir:
Sinalizador | Descrição |
---|---|
ACL_SHORT_TRANSFER_OK | Se esse bit estiver definido, a operação de leitura poderá ser concluída antes que o buffer esteja cheio. Isso só pode ser definido em combinação com ACL_TRANSFER_DIRECTION_IN. |
ACL_TRANSFER_DIRECTION_IN | Se esse bit estiver definido, os dados serão recebidos do dispositivo remoto. Esse sinalizador não pode ser definido em combinação com ACL_TRANSFER_DIRECTION_OUT. |
ACL_TRANSFER_DIRECTION_OUT | Se esse bit estiver definido, os dados serão enviados para o dispositivo remoto. Esse sinalizador não pode ser definido em combinação com ACL_TRANSFER_DIRECTION_IN. |
ACL_TRANSFER_TIMEOUT | A operação de leitura deve ser interrompida após o número de milissegundos especificado no membro Timeout . |
BufferSize
O tamanho do buffer, em bytes.
Buffer
Um ponteiro para o buffer de entrada.
BufferMDL
Um ponteiro para o buffer de entrada MDL.
Timeout
A duração, em milissegundos, antes que a ação de leitura seja cancelada e todos os dados consumidos até esse ponto sejam perdidos.
RemainingBufferSize
A quantidade de espaço, em bytes, deixada no buffer após a chamada brb.
Comentários
Para ler dados assíncronos ou gravar dados assíncronos em um canal L2CAP, os drivers de perfil devem criar e enviar uma solicitação BRB_L2CA_ACL_TRANSFER .
Cada conexão L2CAP é bidirecional e pode ser lida e gravada simultaneamente.
Se nenhum tempo limite for especificado, os BRBs associados a uma solicitação de leitura permanecerão pendentes até que os dados cheguem ou até que sejam cancelados. Os drivers de perfil podem deixar uma solicitação de leitura pendente para aceitar dados de entrada do dispositivo remoto.
A pilha de driver Bluetooth fornece algum buffer de dados de entrada, portanto, não é necessário marcar continuamente se um IRP de leitura está pendente. Um driver de perfil pode especificar a quantidade de buffer a ser fornecida no membro IncomingQueueDepth associado a uma solicitação de BRB_L2CA_OPEN_CHANNEL .
Se o sinalizador ACL_TRANSFER_TIMEOUT for definido no membro TransferFlags e a duração especificada no membro Timeout expirar, a solicitação BRB_L2CA_ACL_TRANSFER será concluída e retornará um erro.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Versões:_Supported no Windows Vista e posteriores. |
Cabeçalho | bthddi.h (inclua Bthddi.h) |