Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Структура _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) |