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

Структура _BRB_SCO_OPEN_CHANNEL описывает канал SCO, открытый для удаленного устройства, или ответ драйвера профиля, принимающего или отклоняющего входящий запрос на подключение SCO, инициированный удаленным устройством.

Синтаксис

struct _BRB_SCO_OPEN_CHANNEL {
  BRB_HEADER                 Hdr;
  BTH_ADDR                   BtAddress;
  ULONG                      TransmitBandwidth;
  ULONG                      ReceiveBandwidth;
  USHORT                     MaxLatency;
  USHORT                     PacketType;
  USHORT                     ContentFormat;
  USHORT                     Reserved;
  SCO_RETRANSMISSION_EFFORT  RetransmissionEffort;
  ULONG                      ChannelFlags;
  ULONG                      CallbackFlags;
  PFNSCO_INDICATION_CALLBACK Callback;
  PVOID                      CallbackContext;
  PVOID                      ReferenceObject;
  SCO_CHANNEL_HANDLE         ChannelHandle;
  UCHAR                      Response;
};

Члены

Hdr

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

BtAddress

Bluetooth-адрес удаленного устройства, на которое открывается канал SCO.

TransmitBandwidth

Пропускная способность передачи в байтах в секунду, назначаемая каналу SCO.

ReceiveBandwidth

Пропускная способность приема в байтах в секунду, назначенная каналу SCO.

MaxLatency

Значение , представляющее в миллисекундах верхнюю границу суммы синхронного интервала и размер окна (e)SCO. Возможные значения перечислены в следующей таблице.

Значения Описание
0x0000 0x0003 Зарезервировано для последующего использования.
0x0004 для 0xFFFE Диапазон возможных значений MaxLatency для канала.
0xFFFF Канал не имеет предпочтительного параметра MaxLatency .

PacketType

Флаг или сочетание флагов, указывающих тип пакетов данных, поддерживаемых подключением SCO. Эти типы пакетов SCO определяются bluetooth SIG. Дополнительные сведения об этих флагах см. в спецификации Bluetooth. Возможные значения:

SCO_HV1

SCO_HV2

SCO_HV3

SCO_EV3

SCO_EV4

SCO_EV5

ContentFormat

Параметры звукового голоса для канала. Используйте следующие определения для кодирования этого элемента:

SCO_VS_AIR_CODING_DATA
SCO_VS_AIR_CODING_FORMAT_ALAW
SCO_VS_AIR_CODING_FORMAT_CVSD
SCO_VS_AIR_CODING_FORMAT_MASK
SCO_VS_AIR_CODING_FORMAT_MULAW
SCO_VS_IN_CODING_ALAW
SCO_VS_IN_CODING_LINEAR
SCO_VS_IN_CODING_MASK
SCO_VS_IN_CODING_MULAW
SCO_VS_IN_DATA_FORMAT_1C
SCO_VS_IN_DATA_FORMAT_2C
SCO_VS_IN_DATA_FORMAT_MASK
SCO_VS_IN_DATA_FORMAT_SM
SCO_VS_IN_DATA_FORMAT_US
SCO_VS_IN_SAMPLE_SIZE_8BIT
SCO_VS_IN_SAMPLE_SIZE_16BIT
SCO_VS_IN_SAMPLE_SIZE_MASK
SCO_VS_PCM_BIT_POS_MASK
SCO_VS_SETTING_DEFAULT

Reserved

Зарезервировано для последующего использования. Не используйте.

RetransmissionEffort

A SCO_RETRANSMISSION_EFFORT значение перечисления, определяющее политики повторной передачи для канала.

ChannelFlags

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

Пометить Описание
SCO_CF_LINK_AUTHENTICATED Ссылка должна пройти проверку подлинности.
SCO_CF_LINK_ENCRYPTED Ссылка должна быть зашифрована. Установка этого флага также задает флаг SCO_CF_LINK_AUTHENTICATED.
SCO_CF_LINK_SUPPRESS_PIN Драйвер профиля указывает на то, что пользователям не предлагается ввести ПИН-код.

CallbackFlags

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

Пометить Описание
SCO_CALLBACK_DISCONNECT Драйвер профиля должен получать уведомление о отключении удаленного устройства.

Callback

Функция обратного вызова SCO, реализованная драйвером профиля, которую должен вызывать стек драйверов Bluetooth, чтобы уведомить драйвер профиля о любых изменениях в подключении SCO.

CallbackContext

Контекст для передачи функции обратного вызова, указанной в элементе Callback . Это значение определяется драйвером профиля.

ReferenceObject

Указатель на объект, передаваемый в ObReferenceObject и ObDereferenceObject , для которых требуется сохранить количество ссылок.

ChannelHandle

Дескриптор для идентификации канала SCO в случае успешного завершения запроса открытого канала.

Response

Флаг, указывающий, будет ли локальный сервер принимать или отклонять входящее подключение SCO. Этот элемент используется только при создании и отправке запроса BRB_SCO_OPEN_CHANNEL_RESPONSE . Допустимые значения флагов перечислены в следующей таблице.

Flag Описание
SCO_CONNECT_RSP_RESPONSE_SUCCESS Локальный сервер принимает запрос на подключение SCO.
SCO_CONNECT_RSP_RESPONSE_NO_RESOURCES Локальный сервер отклоняет запрос на подключение SCO из-за нехватки ресурсов.
SCO_CONNECT_RSP_RESPONSE_SECURITY_BLOCK Локальный сервер отклоняет запрос на подключение SCO, так как он не соответствует требованиям безопасности.
SCO_CONNECT_RSP_RESPONSE_BAD_BD_ADDR Локальный сервер отклоняет запрос на подключение SCO, так как он не принимает подключения с указанного адреса устройства Bluetooth.

Комментарии

Чтобы открыть канал SCO, драйверы профилей должны создать и отправитьзапрос BRB_SCO_OPEN_CHANNEL .

Если асинхронная связь без подключения к удаленному устройству не существует до запроса, стек драйверов Bluetooth создает ее перед созданием канала SCO.

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

Драйвер профиля должен создать и отправить запрос BRB_SCO_OPEN_CHANNEL_RESPONSE , когда стек драйверов Bluetooth вызывает функцию обратного вызова SCO драйвера профиля и передает ScoIndicationRemoteConnect в параметре Indication функции обратного вызова.

Драйвер профиля указывает, следует ли принимать подключение, сохраняя соответствующее значение в элементе Response этой структуры. В этом контексте локальная система является сервером.

Требования

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

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

BRB_HEADER

BRB_SCO_OPEN_CHANNEL

BRB_SCO_OPEN_CHANNEL_RESPONSE

ObDereferenceObject

ObReferenceObject

Функция обратного вызова SCO

SCO_RETRANSMISSION_EFFORT