Compartir a través de


Aceptación de conexiones L2CAP en un controlador de perfil Bluetooth

Un controlador de perfil de servidor L2CAP responde a las solicitudes de conexión entrantes del Protocolo de adaptación y control de vínculos lógicos (L2CAP) desde dispositivos remotos. Por ejemplo, un controlador de perfil de servidor L2CAP para un PDA respondería a una solicitud de conexión entrante del PDA.

Para recibir solicitudes de conexión L2CAP entrantes

  1. Para recibir solicitudes de conexión L2CAP entrantes desdecualquierdispositivo remoto para un PSM determinado, los controladores de perfil primero deben compilar y enviar una solicitud de BRB_L2CA_REGISTER_SERVER , especificando NULL en el miembro BtAddress y 0 en el miembro Psm de la estructura _BRB_L2CA_REGISTER_SERVER de la solicitud. Los controladores de perfil también deben registrar una función de devolución de llamada L2CAP con la pila de controladores Bluetooth al enviar la solicitud de BRB_L2CA_REGISTER_SERVER . Esto permite que la pila de controladores Bluetooth notifique al controlador de perfil las solicitudes de conexión L2CAP entrantes.

    A continuación, los controladores de perfil deben compilar y enviar una solicitud de BRB_REGISTER_PSM para que la pila de controladores Bluetooth acepte las conexiones del PSM registrado por la solicitud. De lo contrario, la pila del controlador Bluetooth rechaza todas las solicitudes de conexión que tienen solicitudes de conexión desconocidas (no registradas). Para obtener más información sobre los PSM, consulte la estructura _BRB_PSM .

  2. Para recibir solicitudes de conexión L2CAP entrantes de un parespecíficode dispositivo remoto/PSM, los controladores de perfil deben compilar y enviar una solicitud de BRB_L2CA_REGISTER_SERVER , especificando la dirección del dispositivo remoto en el miembro BtAddress y PSM en el miembro Psm , de la estructura de _BRB_L2CA_REGISTER_SERVER adjunta de la solicitud. Los controladores de perfil también deben registrar una función de devolución de llamada L2CAP con la pila de controladores Bluetooth al enviar la solicitud de BRB_L2CA_REGISTER_SERVER . Esto permite que la pila de controladores Bluetooth notifique al controlador de perfil las solicitudes de conexión L2CAP entrantes.

  3. El controlador de perfil debe emitir una IOCTL_BTH_SDP_SUBMIT_RECORD. Después, el controlador de perfil puede registrar un registro SDP que describa el servicio que admite el controlador de perfil para que los sistemas remotos puedan detectar el nuevo servicio mediante SDP.

  4. Cuando la pila del controlador Bluetooth recibe una solicitud de conexión L2CAP entrante desde un dispositivo remoto, la pila del controlador Bluetooth llama a la función de devolución de llamada L2CAP registrada anteriormente por el controlador de perfil. La pila del controlador Bluetooth pasa el valor IndicationRemoteConnect al parámetro Indication de la función de devolución de llamada.

  5. Para responder a las solicitudes de conexión entrantes, los controladores de perfil deben compilar y enviar una solicitud de BRB_L2CA_OPEN_CHANNEL_RESPONSE . El controlador de perfil de servidor usa el valor pasado desde la pila del controlador Bluetooth en el parámetro Parameters de la función de devolución de llamada para negociar la configuración de conexión con el dispositivo remoto. En función del valor del miembro Response de la estructura de _BRB_L2CA_OPEN_CHANNEL pasada con esta solicitud, el controlador de perfil de servidor acepta o rechaza la solicitud de conexión.

  6. Si el controlador de perfil de servidor acepta la conexión, la pila del controlador Bluetooth puede llamar a la función de devolución de llamada L2CAP tal como se especifica en el miembro callback de la estructura _BRB_L2CA_OPEN_CHANNEL . La pila de controladores Bluetooth usa esta función para notificar al controlador de perfil de servidor los cambios realizados en la conexión L2CAP.

Nota

  • Un único controlador de perfil puede registrarse para recibir solicitudes de conexión L2CAP entrantes de varios pares de dispositivos o PSM remotos diferentes mediante la compilación y el envío de varias solicitudes de BRB_L2CA_REGISTER_SERVER para registrar varios servidores L2CAP, especificando la dirección de dispositivo remota única y los pares PSM en los miembros BtAddress y Psm de las solicitudes.
  • Un único controlador de perfil puede registrarse para recibir solicitudes de conexión L2CAP entrantes desde cualquier dispositivo remoto para un PSM determinado, así como recibir solicitudes de conexión L2CAP entrantes de varios pares de dispositivo remoto o PSM diferentes, registrando primero para recibir solicitudes de conexión L2CAP entrantes desde cualquier dispositivo remoto para un PSM determinado y, a continuación, registrarse para recibir solicitudes de conexión L2CAP entrantes desde un par de dispositivo remoto o PSM específico siempre que el PSM determinado registrado en el primer paso no se vuelve a registrar.
  • Varios controladores de perfil no se pueden registrar para recibir solicitudes de conexión L2CAP entrantes desde cualquier dispositivo remoto para el mismo PSM. La pila de controladores Bluetooth solo permite que un controlador de perfil reciba solicitudes de conexión L2CAP entrantes desde cualquier dispositivo remoto para un PSM determinado.

Una vez que el controlador de perfil acepta una solicitud de conexión, puede usar otros BRB para enviar y recibir datos a través de la conexión L2CAP recién establecida.

Para dejar de recibir notificaciones de intentos de conexión L2CAP del dispositivo remoto, los controladores de perfil deben compilar y enviar una solicitud de BRB_L2CA_UNREGISTER_SERVER para anular el registro de un servidor cuando el controlador de perfil procesa IRP_MN_REMOVE_DEVICE Plug and Play quitar notificaciones.

Para obtener más información sobre las notificaciones y las funciones de devolución de llamada, consulta Compatibilidad con notificaciones de eventos Bluetooth.