Compartilhar via


estrutura _BRB_L2CA_OPEN_ENHANCED_CHANNEL (bthddi.h)

A estrutura _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 avançada de entrada 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 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 uma status de STATUS_REQUEST_NOT_ACCEPTED, a Resposta conterá a resposta negativa do host remoto.

ResponseStatus

Se Response 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 de 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 o canal a ser aberto. Os valores de sinalizador válidos são listados na tabela a seguir:

Sinalizador 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 fornecer um PIN.

BtAddress

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

ConfigOut

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

ConfigOut.Flags

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

Sinalizador 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 fornecer um PIN.
CFG_ENHANCED Especifica que a estrutura ModeConfig é válida.
CFG_FCS Especifica que o valor 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.

Sinalizador Descrição
CM_BASIC Abra um canal de modo básico.
CM_RETRANSMISSION_AND_FLOW Abra um canal avançado no modo de retransmissão.
CM_STREAMING Abra um canal de modo de streaming.

ConfigOut.ModeConfig.RetransmissionAndFlow

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

O submembro Mode de RetransmissionAndFlow deve ser definido como 0. Use o submember 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 Flags .

ConfigOut.ExtendedFlowSpec

Não há suporte.

ConfigOut.ExtendedWindowSize

Não há suporte.

ConfigIn

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

ConfigIn.Flags

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

Sinalizador 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 fornecer 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.

Sinalizador Descrição
CALLBACK_CONFIG_EXTRA_IN Se definida, 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 definida, 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 estiver 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 definida, 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 do driver de perfil, a conexão será desconectada.
CALLBACK_DISCONNECT Se definida, a rotina de retorno de chamada será chamada quando um dispositivo remoto se desconectar do canal L2CAP aprimorado.
CALLBACK_RECV_PACKET Se definida, 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 de BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE .

Para uma solicitação de 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.

Sinalizador 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 depois.
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 a 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.

Sinalizador 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 BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE o membro Response 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

Comentários

Os drivers de perfil podem usar CM_BASIC | CM_RETRANSMISSION_AND_FLOWmodos ou CM_BASIC | CM_STREAMING para o membro Flags . Isso indica abrir um modo de retransmissão aprimorado ou um 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
Cliente mínimo com suporte Versões:_Supported em Windows 8 e versões posteriores do Windows
Cabeçalho bthddi.h (inclua Bthddi.h)