Compartilhar via


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)

Confira também

BRB_HEADER

BRB_L2CA_ACL_TRANSFER

BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_OPEN_CHANNEL_RESPONSE