Compartir a través de


_BRB_L2CA_OPEN_ENHANCED_CHANNEL estructura (bthddi.h)

La estructura de _BRB_L2CA_OPEN_ENHANCED_CHANNEL se usa para abrir un canal L2CAP mejorado en un dispositivo remoto o enviar una respuesta para aceptar o rechazar una solicitud de conexión L2CAP mejorada entrante iniciada por un dispositivo remoto.

Sintaxis

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

Miembros

Hdr

Estructura BRB_HEADER que contiene información sobre el BRB actual.

ChannelHandle

Identificador usado para identificar la conexión tras una conexión correcta. Al enviar un BRB_L2CA_OPEN_CHANNEL, se rellenará cuando se complete el BRB. Al enviar una solicitud de BRB_L2CA_OPEN_CHANNEL_RESPONSE , el servidor debe rellenarlo antes de enviar el BRB. El valor asignado debe ser INDICATION_PARAMETERS::ConnectionHandle el que se pasó durante la propiedad IndicationRemoteConnect.

Response

Solo se usa con BRB_L2CA_OPEN_CHANNEL_RESPONSE. Se usa uno de los valores de CONNECT_RSP_RESULT_Xxx.

Si el BRB devuelve con un estado de STATUS_REQUEST_NOT_ACCEPTED, Response contendrá la respuesta negativa del host remoto.

ResponseStatus

Si Response es igual a CONNECT_RSP_RESULT_PENDING, este campo es válido. Se usa uno de los valores de CONNECT_RSP_STATUS_XXX.

Psm

Multiplexador de protocolo/servicio (PSM) que usa el canal para conectarse al dispositivo remoto. Cuando se usa con una solicitud de BRB_L2CA_OPEN_ENHANCED_CHANNEL , este miembro se establece como un campo de entrada. Cuando se usa con una solicitud de BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE , este miembro se usa como campo de salida.

ChannelFlags

Marcas que especifican los requisitos para que se abra el canal. Los valores de marca válidos se muestran en la tabla siguiente:

Marca Descripción
CF_LINK_AUTHENTICATED El vínculo debe autenticarse.
CF_LINK_ENCRYPTED El vínculo debe estar cifrado. Al establecer esta marca también se establece la marca CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN El controlador de perfil indica su preferencia de que no se solicite a los usuarios un PIN.

BtAddress

La dirección Bluetooth del dispositivo para el que está prevista la conexión.

ConfigOut

Subestructura que contiene la configuración de parámetros de un BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB enviado a un dispositivo remoto.

ConfigOut.Flags

Marcas que especifican los requisitos para que se abra el canal. Los valores de marca válidos se muestran en la tabla siguiente:

Marca Descripción
CF_LINK_AUTHENTICATED El vínculo debe autenticarse.
CF_LINK_ENCRYPTED El vínculo debe estar cifrado. Al establecer esta marca también se establece la marca CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN El controlador de perfil indica su preferencia de que no se solicite a los usuarios un PIN.
CFG_ENHANCED Especifica que la estructura ModeConfig es válida.
CFG_FCS Especifica que el valor fcs es válido.

ConfigOut.Mtu

Intervalo de unidades de transferencia de mensajes (MTU) que se usan para negociar el tamaño de la mitad saliente del canal.

ConfigOut.FlushTO

Intervalo de valores posibles que se usarán para el tiempo de espera de vaciado de la mitad de salida del canal.

ConfigOut.Flow

Reservado para uso futuro. No debe usarse.

ConfigOut.LinkTO

Tiempo de espera del vínculo del Administrador de vínculos.

ConfigOut.NumExtraOptions

Número de elementos de matriz contenidos en el miembro ExtraOptions . Este valor debe ser cero para la mayoría de los clientes.

ConfigOut.ExtraOptions

Opciones adicionales. Este valor debe ser cero para la mayoría de los clientes.

ConfigOut.LocalQos

Reservado para uso futuro. No debe usarse.

ConfigOut.LocalQos.ServiceType

Reservado para uso futuro. No debe usarse.

ConfigOut.LocalQos.Latency

Reservado para uso futuro. No debe usarse.

ConfigOut.ModeConfig

Especifica el tipo de canal L2CAP que se abre. Esta estructura solo es válida si se especifica CFG_ENHANCED marca.

ConfigOut.ModeConfig.Flags

Especifica el tipo de modo de canal L2CAP solicitado.

Marca Descripción
CM_BASIC Abra un canal de modo básico.
CM_RETRANSMISSION_AND_FLOW Abra un canal de modo de retransmisión mejorado.
CM_STREAMING Abra un canal en modo de streaming.

ConfigOut.ModeConfig.RetransmissionAndFlow

Especifica las opciones para los modos de CM_RETRANSMISSION_AND_FLOW y CM_STREAMING. Esta estructura debe ser cero si solo se especifica CM_BASIC en el miembro Flags .

El submembrado Mode de RetransmissionAndFlow debe establecerse en 0. Use el submembrado ModeConfig de RetransmissionAndFlow para especificar el tipo de canal que se va a abrir.

ConfigOut.Fcs

Especifica si se debe usar FCS para el canal L2CAP mejorado. Este valor solo es válido si CM_RETRANSMISSION_AND_FLOW o CM_STREAMING marca se especifica en el miembro Flags .

ConfigOut.ExtendedFlowSpec

No compatible.

ConfigOut.ExtendedWindowSize

No compatible.

ConfigIn

Subestructura que contiene la configuración de parámetros para validar los brb entrantes BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE que se envían desde un dispositivo remoto.

ConfigIn.Flags

Marcas que especifican los requisitos para que se abra el canal. Los valores de marca válidos se muestran en la tabla siguiente:

Marca Descripción
CF_LINK_AUTHENTICATED El vínculo debe autenticarse.
CF_LINK_ENCRYPTED El vínculo debe estar cifrado. Al establecer esta marca también se establece la marca CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN El controlador de perfil indica su preferencia de que no se solicite a los usuarios un PIN.

ConfigIn.Mtu

Intervalo de unidades de transferencia de mensajes (MTU) que se usan para negociar el tamaño de la mitad entrante del canal.

ConfigIn.FlushTO

Intervalo de valores posibles que se usarán para el tiempo de espera de vaciado de la mitad de entrada del canal.

CallbackFlags

Marca que especifica qué eventos deben generar una rutina de devolución de llamada para notificar al controlador de perfil que se ha producido el evento. Los valores de marca válidos se encuentran en la tabla siguiente.

Marca Descripción
CALLBACK_CONFIG_EXTRA_IN Si se establece, se llamará a la rutina de devolución de llamada cuando la solicitud de configuración del dispositivo remoto contenga opciones adicionales. Si no se establece, las opciones de configuración adicionales se rechazarán como opciones desconocidas. Esta marca se usa con BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB.
CALLBACK_CONFIG_EXTRA_OUT Si se establece, se llamará a la rutina de devolución de llamada cuando el dispositivo remoto rechace una opción de configuración adicional de una solicitud de BRB_L2CA_OPEN_ENHANCED_CHANNEL . Si no se establece y el dispositivo remoto rechaza la solicitud de configuración debido a una opción adicional, se cerrará la conexión.
CALLBACK_CONFIG_QOS Si se establece, se llamará a la rutina de devolución de llamada cuando un dispositivo remoto envíe una solicitud de configuración que contenga un valor de QOS. Si no se establece esta marca y el dispositivo remoto envía parámetros QOS en una solicitud de configuración o rechaza los parámetros de QOS solicitados del controlador de perfil, la conexión se desconecta.
CALLBACK_DISCONNECT Si se establece, se llamará a la rutina de devolución de llamada cuando un dispositivo remoto se desconecte del canal L2CAP mejorado.
CALLBACK_RECV_PACKET Si se establece, se llamará a la rutina de devolución de llamada cuando el controlador de perfil reciba un paquete L2CAP mejorado entrante.

Callback

La función de devolución de llamada L2CAP mejorada implementada por el controlador de perfil, que la pila del controlador Bluetooth debe llamar para notificar al controlador de perfil los cambios realizados en la conexión L2CAP mejorada.

CallbackContext

Contexto que se va a pasar a la función de devolución de llamada especificada en el miembro Devolución de llamada. El controlador de perfil define este valor.

ReferenceObject

Puntero a un objeto que se va a pasar a ObReferenceObject y ObDereferenceObject para el que se debe mantener un recuento de referencias.

OutResults

Estructura CHANNEL_CONFIG_RESULTS_ENHANCED que contiene parámetros de configuración negociados para la solicitud de salida.

InResults

Estructura CHANNEL_CONFIG_RESULTS_ENHANCED que contiene parámetros de configuración negociados para la solicitud entrante.

IncomingQueueDepth

Especifica la longitud de la cola entrante en unidades de transferencia de mensajes (MTU).

Reserved

Miembro reservado. No debe usarse.

Response

Este miembro se usa como parámetro de entrada para una solicitud de BRB_L2CA_OPEN_ENHANCED_CHANNEL y un parámetro de salida para la solicitud BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE .

Para una solicitud de BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE , este miembro contiene una marca que indica la respuesta del controlador de perfil al dispositivo remoto. Los valores de marca válidos se encuentran en la tabla siguiente.

Marca Descripción
CONNECT_RSP_RESULT_NO_RESOURCES El controlador de perfil rechazó la conexión debido a una falta de recursos.
CONNECT_RSP_RESULT_PENDING El controlador de perfil está ocupado actualmente y no puede aceptar la conexión. Vuelva a intentarlo más tarde.
CONNECT_RSP_RESULT_PSM_NEG El controlador de perfil rechazó la conexión porque no se admite PSM.
CONNECT_RSP_RESULT_SECURITY_BLOCK El controlador de perfil rechazó la conexión por motivos de seguridad.
CONNECT_RSP_RESULT_SUCCESS El controlador de perfil aceptó la conexión.

Para el BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB, este miembro contiene la respuesta del dispositivo remoto al que el controlador de perfil intentó conectarse. Los valores de marca válidos se encuentran en la tabla siguiente.

Marca Descripción
CONNECT_RSP_RESULT_NO_RESOURCES El dispositivo remoto rechazó la conexión debido a una falta de recursos.
CONNECT_RSP_RESULT_PSM_NEG El dispositivo remoto rechazó la conexión.
CONNECT_RSP_RESULT_SECURITY_BLOCK El dispositivo remoto rechazó la conexión por motivos de seguridad.
CONNECT_RSP_RESULT_SUCCESS El dispositivo remoto aceptó la conexión.

ResponseStatus

Si durante una llamada al BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB, el miembro Response se establece en CONNECT_RSP_RESULT_PENDING, este miembro es válido y contiene uno de los siguientes valores:

  • CONNECT_RSP_STATUS_AUTHENTICATION_PENDING
  • CONNECT_RSP_STATUS_AUTHORIZATION_PENDING
  • CONNECT_RSP_STATUS_NO_INFORMATION

Comentarios

Los controladores de perfil pueden usar CM_BASIC | CM_RETRANSMISSION_AND_FLOWlos modos , o CM_BASIC | CM_STREAMING para el miembro Flags . Esto indica que se abre un modo de retransmisión mejorado o un canal en modo de streaming si es posible, y si no se vuelve al canal de modo básico. No se admite un valor de CM_RETRANSMISSION_AND_FLOW | CM_STREAMING .

Requisitos

Requisito Value
Cliente mínimo compatible Versiones:_Supported en Windows 8 y versiones posteriores de Windows
Encabezado bthddi.h (incluya Bthddi.h)