_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_FLOW
los 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) |