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

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

Синтаксис

struct _BRB_SCO_TRANSFER {
  BRB_HEADER         Hdr;
  BTH_ADDR           BtAddress;
  SCO_CHANNEL_HANDLE ChannelHandle;
  ULONG              TransferFlags;
  ULONG              BufferSize;
  PVOID              Buffer;
  PMDL               BufferMDL;
  ULONGLONG          DataTag;
};

Члены

Hdr

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

BtAddress

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

ChannelHandle

Дескриптор канала SCO, возвращенный стеком драйверов Bluetooth в ответ на более ранний запрос BRB_SCO_OPEN_CHANNEL или BRB_SCO_OPEN_CHANNEL_RESPONSE .

TransferFlags

Флаги, определяющие базовое поведение BRB. Допустимые значения флагов перечислены в следующей таблице.

Flag Описание
SCO_TRANSFER_DIRECTION_IN Если этот бит задан, BRB считывает изохронные данные с удаленного устройства через канал SCO.
SCO_TRANSFER_DIRECTION_OUT Если этот бит задан, BRB записывает изохронные данные на удаленное устройство через канал SCO.

BufferSize

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

Buffer

Указатель на входной буфер. Если элемент буфера не используется, это значение должно иметь значение NULL.

BufferMDL

Указатель на входной буфер MDL. Если элемент BufferMDL не используется, это значение должно иметь значение NULL.

DataTag

Запись в SCO

Комментарии

Для чтения изохронных данных или записи изохронных данных в подключение SCO драйверы профилей должны создать и отправитьзапрос BRB_SCO_TRANSFER .

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

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

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

Если buffer и BufferMDL содержат значения, отличные от NULL , то bufferMDL имеет приоритет.

Требования

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

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

BRB_HEADER

BRB_SCO_OPEN_CHANNEL

BRB_SCO_OPEN_CHANNEL_RESPONSE

BRB_SCO_TRANSFER