Compartilhar via


estrutura _BRB_L2CA_OPEN_ENHANCED_CHANNEL (bthddi.h)

A estrutura de _BRB_L2CA_OPEN_ENHANCED_CHANNEL é usada para abrir um canal L2CAP aprimorado para um dispositivo remoto ou enviar uma resposta para aceitar/rejeitar uma solicitação de conexão L2CAP aprimorada de entrada que foi iniciada por um dispositivo remoto.

Sintaxe

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

Membros

Hdr

Uma estrutura BRB_HEADER que contém informações sobre o BRB atual.

ChannelHandle

Identificador usado para identificar a conexão em uma conexão bem-sucedida. Ao enviar um BRB_L2CA_OPEN_CHANNEL, isso será preenchido quando o BRB for concluído. Ao enviar uma solicitação de BRB_L2CA_OPEN_CHANNEL_RESPONSE, isso deve ser preenchido pelo servidor antes de enviar o BRB. O valor atribuído deve ser INDICATION_PARAMETERS::ConnectionHandle que foi passado durante o IndicationRemoteConnect.

Response

Usado somente com BRB_L2CA_OPEN_CHANNEL_RESPONSE. Um dos valores de CONNECT_RSP_RESULT_Xxx é usado.

Se o BRB retornar com um status de STATUS_REQUEST_NOT_ACCEPTED, de Resposta conterá a resposta negativa do host remoto.

ResponseStatus

Se de Resposta for igual a CONNECT_RSP_RESULT_PENDING, esse campo será válido. Um dos valores de CONNECT_RSP_STATUS_XXX é usado.

Psm

O Protocolo/Multiplexer de Serviço (PSM) que o canal usa para se conectar ao dispositivo remoto. Quando usado com uma solicitação BRB_L2CA_OPEN_ENHANCED_CHANNEL, esse membro é definido como um campo de entrada. Quando usado com uma solicitação BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE, esse membro é usado como um campo de saída.

ChannelFlags

Sinalizadores que especificam os requisitos para que o canal seja aberto. Os valores de sinalizador válidos são listados na tabela a seguir:

Bandeira Descrição
CF_LINK_AUTHENTICATED O link deve ser autenticado.
CF_LINK_ENCRYPTED O link deve ser criptografado. Definir esse sinalizador também define o sinalizador CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN O driver de perfil indica sua preferência de que os usuários não sejam solicitados a obter um PIN.

BtAddress

O endereço Bluetooth do dispositivo para o qual a conexão se destina.

ConfigOut

A subestrutura que contém configurações de parâmetro para um BRB BRB_L2CA_OPEN_ENHANCED_CHANNEL enviado para um dispositivo remoto.

ConfigOut.Flags

Sinalizadores que especificam os requisitos para que o canal seja aberto. Os valores de sinalizador válidos são listados na tabela a seguir:

Bandeira Descrição
CF_LINK_AUTHENTICATED O link deve ser autenticado.
CF_LINK_ENCRYPTED O link deve ser criptografado. Definir esse sinalizador também define o sinalizador CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN O driver de perfil indica sua preferência de que os usuários não sejam solicitados a obter um PIN.
CFG_ENHANCED Especifica que a estrutura ModeConfig é válida.
CFG_FCS Especifica que o valor de Fcs é válido.

ConfigOut.Mtu

O intervalo de MTUs (unidades de transferência de mensagens) que é usado para negociar o tamanho da metade de saída do canal.

ConfigOut.FlushTO

O intervalo de valores possíveis a serem usados para o tempo limite de liberação para a metade de saída do canal.

ConfigOut.Flow

Reservado para uso futuro. Não use.

ConfigOut.LinkTO

O tempo limite do link do Gerenciador de Link.

ConfigOut.NumExtraOptions

O número de itens de matriz contidos no membro ExtraOptions. Esse valor deve ser zero para a maioria dos clientes.

ConfigOut.ExtraOptions

Opções extras. Esse valor deve ser zero para a maioria dos clientes.

ConfigOut.LocalQos

Reservado para uso futuro. Não use.

ConfigOut.LocalQos.ServiceType

Reservado para uso futuro. Não use.

ConfigOut.LocalQos.Latency

Reservado para uso futuro. Não use.

ConfigOut.ModeConfig

Especifica o tipo de canal L2CAP que está sendo aberto. Essa estrutura só será válida se CFG_ENHANCED sinalizador for especificado.

ConfigOut.ModeConfig.Flags

Especifica o tipo de modo de canal L2CAP solicitado.

Bandeira Descrição
CM_BASIC Abra um canal de modo básico.
CM_RETRANSMISSION_AND_FLOW Abra um canal de modo de retransmissão aprimorado.
CM_STREAMING Abra um canal de modo de streaming.

ConfigOut.ModeConfig.RetransmissionAndFlow

Especifica as opções para modos CM_RETRANSMISSION_AND_FLOW e CM_STREAMING. Essa estrutura deverá ser zero se apenas CM_BASIC for especificado no membro sinalizadores do.

O submembro modo de RetransmissionAndFlow deve ser definido como 0. Use o submembro ModeConfig de RetransmissionAndFlow para especificar o tipo de canal a ser aberto.

ConfigOut.Fcs

Especifica se o FCS deve ser usado para o canal L2CAP aprimorado. Esse valor será válido somente se CM_RETRANSMISSION_AND_FLOW ou CM_STREAMING sinalizador for especificado no membro sinalizadores.

ConfigOut.ExtendedFlowSpec

Não há suporte.

ConfigOut.ExtendedWindowSize

Não há suporte.

ConfigIn

A subestrutura que contém configurações de parâmetro para validar a entrada BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRBs que são enviados de um dispositivo remoto.

ConfigIn.Flags

Sinalizadores que especificam os requisitos para que o canal seja aberto. Os valores de sinalizador válidos são listados na tabela a seguir:

Bandeira Descrição
CF_LINK_AUTHENTICATED O link deve ser autenticado.
CF_LINK_ENCRYPTED O link deve ser criptografado. Definir esse sinalizador também define o sinalizador CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN O driver de perfil indica sua preferência de que os usuários não sejam solicitados a obter um PIN.

ConfigIn.Mtu

O intervalo de MTUs (unidades de transferência de mensagens) que é usado para negociar o tamanho da metade de entrada do canal.

ConfigIn.FlushTO

O intervalo de valores possíveis a serem usados para o tempo limite de liberação para a metade de entrada do canal.

CallbackFlags

Um sinalizador que especifica quais eventos devem gerar uma rotina de retorno de chamada para notificar o driver de perfil de que o evento ocorreu. Os valores de sinalizador válidos estão contidos na tabela a seguir.

Bandeira Descrição
CALLBACK_CONFIG_EXTRA_IN Se definido, a rotina de retorno de chamada será chamada quando a solicitação de configuração do dispositivo remoto contiver opções extras. Se não estiver definido, as opções de configuração extras serão rejeitadas como opções desconhecidas. Esse sinalizador é usado com BRBs BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE.
CALLBACK_CONFIG_EXTRA_OUT Se definido, a rotina de retorno de chamada será chamada quando o dispositivo remoto rejeitar uma opção de configuração extra de uma solicitação de BRB_L2CA_OPEN_ENHANCED_CHANNEL. Se não for definido e o dispositivo remoto rejeitar a solicitação de configuração devido a uma opção extra, a conexão será fechada.
CALLBACK_CONFIG_QOS Se definido, a rotina de retorno de chamada será chamada quando um dispositivo remoto enviar uma solicitação de configuração que contenha um valor QOS. Se esse sinalizador não estiver definido e o dispositivo remoto enviar parâmetros QOS em uma solicitação de configuração ou rejeitar os parâmetros de QOS solicitados pelo driver de perfil, a conexão será desconectada.
CALLBACK_DISCONNECT Se definido, a rotina de retorno de chamada será chamada quando um dispositivo remoto se desconectar do canal L2CAP aprimorado.
CALLBACK_RECV_PACKET Se definido, a rotina de retorno de chamada será chamada quando o driver de perfil receber um pacote L2CAP avançado de entrada.

Callback

A função de retorno de chamada L2CAP aprimorada implementada pelo driver de perfil, que a pilha de driver Bluetooth deve chamar para notificar o driver de perfil sobre quaisquer alterações na conexão L2CAP aprimorada.

CallbackContext

O contexto a ser passado para a função de retorno de chamada especificada no membro de retorno de chamada. O driver de perfil define esse valor.

ReferenceObject

Um ponteiro para um objeto a ser passado para ObReferenceObject e ObDereferenceObject para o qual manter uma contagem de referência.

OutResults

Uma estrutura CHANNEL_CONFIG_RESULTS_ENHANCED que contém parâmetros de configuração negociados para a solicitação de saída.

InResults

Uma estrutura CHANNEL_CONFIG_RESULTS_ENHANCED que contém parâmetros de configuração negociados para a solicitação de entrada.

IncomingQueueDepth

Especifica o comprimento da fila de entrada em MTUs (unidades de transferência de mensagens).

Reserved

Membro reservado. Não use.

Resposta

Esse membro é usado como um parâmetro de entrada para uma solicitação de BRB_L2CA_OPEN_ENHANCED_CHANNEL e um parâmetro de saída para a solicitação BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE.

Para uma solicitação BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE, esse membro contém um sinalizador que indica a resposta do driver de perfil ao dispositivo remoto. Os valores de sinalizador válidos estão contidos na tabela a seguir.

Bandeira Descrição
CONNECT_RSP_RESULT_NO_RESOURCES O driver de perfil recusou a conexão devido à falta de recursos.
CONNECT_RSP_RESULT_PENDING O driver de perfil está ocupado no momento e não pode aceitar a conexão. Tente novamente mais tarde.
CONNECT_RSP_RESULT_PSM_NEG O driver de perfil recusou a conexão porque o PSM não tem suporte.
CONNECT_RSP_RESULT_SECURITY_BLOCK O driver de perfil recusou a conexão por motivos de segurança.
CONNECT_RSP_RESULT_SUCCESS O driver de perfil aceitou a conexão.

Para o BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB, esse membro contém a resposta do dispositivo remoto ao qual o driver de perfil tentou se conectar. Os valores de sinalizador válidos estão contidos na tabela a seguir.

Bandeira Descrição
CONNECT_RSP_RESULT_NO_RESOURCES O dispositivo remoto recusou a conexão devido à falta de recursos.
CONNECT_RSP_RESULT_PSM_NEG O dispositivo remoto recusou a conexão.
CONNECT_RSP_RESULT_SECURITY_BLOCK O dispositivo remoto recusou a conexão por motivos de segurança.
CONNECT_RSP_RESULT_SUCCESS O dispositivo remoto aceitou a conexão.

ResponseStatus

Se durante uma chamada para o BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB o membro de resposta estiver definido como CONNECT_RSP_RESULT_PENDING, esse membro será válido e conterá um dos seguintes valores:

  • CONNECT_RSP_STATUS_AUTHENTICATION_PENDING
  • CONNECT_RSP_STATUS_AUTHORIZATION_PENDING
  • CONNECT_RSP_STATUS_NO_INFORMATION

Observações

Os drivers de perfil podem usar CM_BASIC | CM_RETRANSMISSION_AND_FLOWou modos de CM_BASIC | CM_STREAMING para o membro sinalizadores do. Isso indica abrir um modo de retransmissão aprimorado ou canal de modo de streaming, se possível, e se não voltar para o canal de modo básico. Não há suporte para um valor de CM_RETRANSMISSION_AND_FLOW | CM_STREAMING.

Requisitos

Requisito Valor
de cliente com suporte mínimo Versões:_Supported no Windows 8 e versões posteriores do Windows
cabeçalho bthddi.h (inclua Bthddi.h)