Поделиться через


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

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

Синтаксис

struct _BRB_L2CA_OPEN_ENHANCED_CHANNEL {
  BRB_HEADER                              Hdr;
  L2CAP_CHANNEL_HANDLE                    ChannelHandle;
  union {
    struct {
      USHORT Response;
      USHORT ResponseStatus;
    };
    USHORT Psm;
  };
  ULONG                                   ChannelFlags;
  BTH_ADDR                                BtAddress;
  struct {
    ULONG                    Flags;
    L2CAP_CONFIG_VALUE_RANGE Mtu;
    L2CAP_CONFIG_VALUE_RANGE FlushTO;
    L2CAP_FLOWSPEC           Flow;
    USHORT                   LinkTO;
    ULONG                    NumExtraOptions;
    PL2CAP_CONFIG_OPTION     ExtraOptions;
    struct {
      UCHAR ServiceType;
      ULONG Latency;
    } LocalQos;
    struct {
      ULONG                                 Flags;
      L2CAP_RETRANSMISSION_AND_FLOW_CONTROL RetransmissionAndFlow;
    } ModeConfig;
    USHORT                   Fcs;
    L2CAP_EXTENDED_FLOW_SPEC ExtendedFlowSpec;
    USHORT                   ExtendedWindowSize;
  } ConfigOut;
  struct {
    ULONG                    Flags;
    L2CAP_CONFIG_VALUE_RANGE Mtu;
    L2CAP_CONFIG_RANGE       FlushTO;
  } ConfigIn;
  ULONG                                   CallbackFlags;
  PFNBTHPORT_INDICATION_CALLBACK_ENHANCED Callback;
  PVOID                                   CallbackContext;
  PVOID                                   ReferenceObject;
  CHANNEL_CONFIG_RESULTS_ENHANCED         OutResults;
  CHANNEL_CONFIG_RESULTS_ENHANCED         InResults;
  UCHAR                                   IncomingQueueDepth;
  PVOID                                   Reserved;
};

Члены

Hdr

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

ChannelHandle

Дескриптор, используемый для идентификации подключения при успешном подключении. При отправке BRB_L2CA_OPEN_CHANNELэто будет заполнено после завершения BRB. При отправке запроса BRB_L2CA_OPEN_CHANNEL_RESPONSE это необходимо заполнить сервером перед отправкой BRB. Присвоенное значение должно быть INDICATION_PARAMETERS::ConnectionHandle, которое было передано во время indicationRemoteConnect.

Response

Используется только с BRB_L2CA_OPEN_CHANNEL_RESPONSE. Используется одно из CONNECT_RSP_RESULT_Xxx значений.

Если BRB возвращает состояние STATUS_REQUEST_NOT_ACCEPTED, то ответ будет содержать отрицательный ответ от удаленного узла.

ResponseStatus

Если ответа равно CONNECT_RSP_RESULT_PENDING, это поле допустимо. Используется одно из CONNECT_RSP_STATUS_XXX значений.

Psm

Мультиплексер протокола или службы (PSM), используемый каналом для подключения к удаленному устройству. При использовании с запросом BRB_L2CA_OPEN_ENHANCED_CHANNEL этот элемент устанавливается в качестве поля ввода. При использовании с запросом BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE этот элемент используется в качестве поля вывода.

ChannelFlags

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

Флаг Описание
CF_LINK_AUTHENTICATED Ссылка должна пройти проверку подлинности.
CF_LINK_ENCRYPTED Ссылка должна быть зашифрована. Установка этого флага также задает флаг CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN Драйвер профиля указывает, что пользователям не предлагается пин-код.

BtAddress

Адрес Bluetooth устройства, для которого предназначено подключение.

ConfigOut

Подструктура, содержащая параметры параметров для BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB, отправленной на удаленное устройство.

ConfigOut.Flags

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

Флаг Описание
CF_LINK_AUTHENTICATED Ссылка должна пройти проверку подлинности.
CF_LINK_ENCRYPTED Ссылка должна быть зашифрована. Установка этого флага также задает флаг CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN Драйвер профиля указывает, что пользователям не предлагается пин-код.
CFG_ENHANCED Указывает, что структура ModeConfig допустима.
CFG_FCS Указывает, что значение Fcs является допустимым.

ConfigOut.Mtu

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

ConfigOut.FlushTO

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

ConfigOut.Flow

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

ConfigOut.LinkTO

Время ожидания связи Диспетчера ссылок.

ConfigOut.NumExtraOptions

Количество элементов массива, содержащихся в элементе ExtraOptions. Это значение должно быть равно нулю для большинства клиентов.

ConfigOut.ExtraOptions

Дополнительные параметры. Это значение должно быть равно нулю для большинства клиентов.

ConfigOut.LocalQos

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

ConfigOut.LocalQos.ServiceType

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

ConfigOut.LocalQos.Latency

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

ConfigOut.ModeConfig

Указывает тип открываемого канала L2CAP. Эта структура действительна, только если указан флаг CFG_ENHANCED.

ConfigOut.ModeConfig.Flags

Указывает тип запрошенного режима канала L2CAP.

Флаг Описание
CM_BASIC Откройте канал базового режима.
CM_RETRANSMISSION_AND_FLOW Откройте расширенный канал режима повторной передачи.
CM_STREAMING Откройте канал режима потоковой передачи.

ConfigOut.ModeConfig.RetransmissionAndFlow

Задает параметры для режимов CM_RETRANSMISSION_AND_FLOW и CM_STREAMING. Эта структура должна быть нулевой, если в элементе флагов указан только CM_BASIC.

Вложенная вложенная режимаRetransmissionAndFlow должна иметь значение 0. Используйте вложенны й элемент ModeConfig RetransmissionAndFlow, чтобы указать тип открытого канала.

ConfigOut.Fcs

Указывает, следует ли использовать FCS для расширенного канала L2CAP. Это значение допустимо, только если флаг CM_RETRANSMISSION_AND_FLOW или CM_STREAMING указан в элементе Flags.

ConfigOut.ExtendedFlowSpec

Не поддерживается.

ConfigOut.ExtendedWindowSize

Не поддерживается.

ConfigIn

Подструктура, содержащая параметры параметров для проверки входящих BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BROB-объектов, отправляемых с удаленного устройства.

ConfigIn.Flags

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

Флаг Описание
CF_LINK_AUTHENTICATED Ссылка должна пройти проверку подлинности.
CF_LINK_ENCRYPTED Ссылка должна быть зашифрована. Установка этого флага также задает флаг CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN Драйвер профиля указывает, что пользователям не предлагается пин-код.

ConfigIn.Mtu

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

ConfigIn.FlushTO

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

CallbackFlags

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

Флаг Описание
CALLBACK_CONFIG_EXTRA_IN Если задано, подпрограмма обратного вызова будет вызываться, когда запрос конфигурации для удаленного устройства содержит дополнительные параметры. Если параметр не задан, дополнительные параметры конфигурации будут отклонены в виде неизвестных параметров. Этот флаг используется с BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB.
CALLBACK_CONFIG_EXTRA_OUT Если задано, подпрограмма обратного вызова будет вызываться, когда удаленное устройство отклоняет дополнительный параметр конфигурации из запроса BRB_L2CA_OPEN_ENHANCED_CHANNEL. Если не задано, а удаленное устройство отклоняет запрос конфигурации из-за дополнительного параметра, подключение будет закрыто.
CALLBACK_CONFIG_QOS Если задано, подпрограмма обратного вызова будет вызываться, когда удаленное устройство отправляет запрос конфигурации, содержащий значение QOS. Если этот флаг не задан, а удаленное устройство отправляет параметры QOS в запросе конфигурации или отклоняет запрошенные параметры QOS драйвера профиля, подключение отключено.
CALLBACK_DISCONNECT Если задано, подпрограмма обратного вызова будет вызываться при отключении удаленного устройства от расширенного канала L2CAP.
CALLBACK_RECV_PACKET Если задано, подпрограмма обратного вызова будет вызываться, когда драйвер профиля получает входящий расширенный пакет L2CAP.

Callback

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

CallbackContext

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

ReferenceObject

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

OutResults

Структура CHANNEL_CONFIG_RESULTS_ENHANCED, содержащая параметры конфигурации, согласованные для исходящего запроса.

InResults

Структура CHANNEL_CONFIG_RESULTS_ENHANCED, содержащая параметры конфигурации, согласованные для входящего запроса.

IncomingQueueDepth

Указывает длину входящей очереди в единицах передачи сообщений (MTUS).

Reserved

Зарезервированный член. Не используйте.

Ответ

Этот элемент используется в качестве входного параметра для запроса BRB_L2CA_OPEN_ENHANCED_CHANNEL и выходного параметра для запроса BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE.

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

Флаг Описание
CONNECT_RSP_RESULT_NO_RESOURCES Драйвер профиля отказался от подключения из-за нехватки ресурсов.
CONNECT_RSP_RESULT_PENDING Драйвер профиля в настоящее время занят и не может принять подключение. Повторите попытку позже.
CONNECT_RSP_RESULT_PSM_NEG Драйвер профиля отказался от подключения, так как PSM не поддерживается.
CONNECT_RSP_RESULT_SECURITY_BLOCK Драйвер профиля отказался от подключения по соображениям безопасности.
CONNECT_RSP_RESULT_SUCCESS Драйвер профиля принял подключение.

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

Флаг Описание
CONNECT_RSP_RESULT_NO_RESOURCES Удаленное устройство отказалась от подключения из-за нехватки ресурсов.
CONNECT_RSP_RESULT_PSM_NEG Удаленное устройство отказало в подключении.
CONNECT_RSP_RESULT_SECURITY_BLOCK Удаленное устройство отказалась от подключения по соображениям безопасности.
CONNECT_RSP_RESULT_SUCCESS Удаленное устройство приняло подключение.

ResponseStatus

Если во время вызова BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB член ответа имеет значение CONNECT_RSP_RESULT_PENDING, этот элемент действителен и содержит одно из следующих значений:

  • CONNECT_RSP_STATUS_AUTHENTICATION_PENDING
  • CONNECT_RSP_STATUS_AUTHORIZATION_PENDING
  • CONNECT_RSP_STATUS_NO_INFORMATION

Замечания

Драйверы профилей могут использовать CM_BASIC | CM_RETRANSMISSION_AND_FLOWили режимы CM_BASIC | CM_STREAMING для элемента Flags. Это указывает, чтобы открыть расширенный режим повторной передачи или канал потоковой передачи, если это возможно, и если не вернуться к базовому каналу режима. Значение CM_RETRANSMISSION_AND_FLOW | CM_STREAMING не поддерживается.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Версии:_Supported в Windows 8 и более поздних версиях Windows
заголовка bthddi.h (include Bthddi.h)