структура _BRB_L2CA_ACL_TRANSFER (bthddi.h)

Структура _BRB_L2CA_ACL_TRANSFER описывает буфер для чтения асинхронных данных или записи асинхронных данных в канал L2CAP.

Синтаксис

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

Члены

Hdr

Структура BRB_HEADER , содержащая сведения о текущем BRB.

BtAddress

Адрес удаленного устройства.

ChannelHandle

Дескриптор канала L2CAP, возвращенный стеком драйверов Bluetooth в ответ на более раннюю BRB_L2CA_OPEN_CHANNEL или BRB_L2CA_OPEN_CHANNEL_RESPONSE запрос.

TransferFlags

Сочетание флагов, задающее базовое поведение интерфейса. Одновременно можно задать несколько флагов. Допустимые значения флагов описаны в следующей таблице:

Flag Описание
ACL_SHORT_TRANSFER_OK Если этот бит задан, операция чтения может завершиться до заполнения буфера. Это можно задать только в сочетании с ACL_TRANSFER_DIRECTION_IN.
ACL_TRANSFER_DIRECTION_IN Если этот бит задан, данные будут получены с удаленного устройства. Этот флаг нельзя установить в сочетании с ACL_TRANSFER_DIRECTION_OUT.
ACL_TRANSFER_DIRECTION_OUT Если этот бит задан, данные отправляются на удаленное устройство. Этот флаг нельзя задать в сочетании с ACL_TRANSFER_DIRECTION_IN.
ACL_TRANSFER_TIMEOUT Операция чтения должна быть остановлена после количества миллисекунда, указанного в элементе Timeout .

BufferSize

Размер (в байтах) буфера.

Buffer

Указатель на входной буфер.

BufferMDL

Указатель на входной буфер MDL.

Timeout

Длительность (в миллисекундах) перед отменой действия чтения и потерей всех данных, использованных до этого момента.

RemainingBufferSize

Объем пространства (в байтах) в буфере после вызова BRB.

Комментарии

Чтобы считывать асинхронные данные из канала L2CAP или записывать асинхронные данные, драйверы профилей должны создавать и отправлятьзапрос BRB_L2CA_ACL_TRANSFER .

Каждое подключение L2CAP является двунаправленным и может считываться и записываться одновременно.

Если время ожидания не указано, то объекты BRB, связанные с запросом на чтение, будут оставаться в состоянии ожидания до поступления данных или до тех пор, пока они не будут отменены. Драйверы профилей могут оставить запрос на чтение в ожидании, чтобы принимать входящие данные с удаленного устройства.

Стек драйверов Bluetooth обеспечивает некоторую буферизацию входящих данных, поэтому нет необходимости постоянно проверка, находится ли ожидание IRP для чтения. Драйвер профиля может указать объем буферизации для предоставления в члене IncomingQueueDepth , связанном с запросом BRB_L2CA_OPEN_CHANNEL .

Если флаг ACL_TRANSFER_TIMEOUT установлен в элементе TransferFlags и истекает длительность, указанная в элементе Timeout , запрос BRB_L2CA_ACL_TRANSFER завершится и вернет ошибку.

Требования

Требование Значение
Минимальная версия клиента Versions:_Supported в Windows Vista и более поздних версий.
Верхняя часть bthddi.h (включая Bthddi.h)

См. также раздел

BRB_HEADER

BRB_L2CA_ACL_TRANSFER

BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_OPEN_CHANNEL_RESPONSE