Compartir a través de


Instalación de un dispositivo Bluetooth

Importante

Este tema es para programadores. Si es un cliente que experimenta problemas de instalación de dispositivos Bluetooth, consulte Emparejar un dispositivo Bluetooth en Windows.

Hay dos tipos de instalación para los controladores de perfil de Bluetooth:

  • Instalación del lado cliente para dispositivos remotos en los que el dispositivo remoto anuncia sus servicios y el equipo se conecta a él. Algunos ejemplos son: ratones, teclados e impresoras.
  • Instalación del lado servidor donde el equipo anuncia servicios y dispositivos remotos puede conectarse al equipo para usar esos servicios. Por ejemplo, un proveedor podría crear una instalación del lado servidor para permitir que un dispositivo móvil se imprima en una impresora conectada al equipo.

Estos dos tipos de instalación requieren procedimientos de instalación diferentes.

Instalación de un controlador de perfil del lado cliente

Un usuario que quiere usar un dispositivo habilitado para Bluetooth lleva el dispositivo dentro del intervalo del equipo e inicia una conexión desde el equipo al dispositivo remoto mediante la siguiente secuencia de instalación para un controlador de perfil del lado cliente.

  1. Seleccione Agregar un dispositivo Bluetooth en Panel de control para buscar todos los dispositivos dentro del intervalo del equipo.
  2. Seleccione el dispositivo con el que se va a emparejar.
  3. Empareja el dispositivo con la radio local, que podría o no implicar un intercambio de PIN.
  4. La radio local emite una consulta de SDP para identificar los servicios admitidos en el dispositivo remoto.
  5. El Asistente para nuevo hardware encontrado busca controladores adecuados en la unidad de disco duro local y en Windows Update.
  6. Si el Asistente para nuevo hardware encontrado no encuentra un controlador adecuado para el dispositivo, solicita al usuario que inserte el medio de instalación del controlador de perfil que contiene el archivo de información de configuración del dispositivo del controlador de perfil (archivo INF).

Instalación de un controlador de perfil del lado servidor

La pila de controladores Bluetooth admite GUID de servicio según lo definido por el SIG de Bluetooth y los GUID personalizados no definidos por el SIG de Bluetooth.

Nota:

La herramienta guidgen.exe proporcionada con el SDK de Microsoft Windows se puede usar para crear GUID personalizados.

Se debe escribir una aplicación de instalación en modo de usuario para exponer la funcionalidad del equipo que pueden usar los dispositivos Bluetooth remotos.

La aplicación de instalación debe comunicarse con la pila del controlador Bluetooth para crear un GUID de servicio para que la funcionalidad se exponga. Los proveedores especifican el GUID de servicio en la aplicación y en su archivo INF de instalación de dispositivos.

La aplicación de instalación debe llamar a la API en modo de usuario BluetoothSetLocalServiceInfo. Para que la aplicación pueda llamar a esta API, la aplicación debe tener el privilegio de seguridad SE_LOAD_DRIVER_NAME. En el ejemplo de código siguiente se muestra cómo obtener este privilegio. Tenga en cuenta que el ejemplo no muestra el control de errores.

HANDLE procToken;
LUID luid;
TOKEN_PRIVILEGES tp;

OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &procToken);

LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, &luid);

Tp.PrivilegeCount = 1;
Tp.privileges[0].Luid = luid;
Tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(procToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, (PDWORD)NULL)

Archivo INF del controlador de perfil

Un archivo INF del controlador de perfil contiene información sobre un dispositivo Bluetooth para la instalación del lado cliente. Para una instalación del lado servidor, el archivo INF especifica un identificador de dispositivo que corresponde al GUID de servicio creado por la aplicación de instalación. Todos los dispositivos Bluetooth son miembros de la clase Bluetooth . El instalador de clase Bluetooth (Bthci.dll) ayuda a instalar controladores de perfil.

Para obtener más información sobre cómo crear y distribuir archivos INF e instalar controladores, vea Creación de secciones y directivas de archivos INF y INF.

Identificadores Plug and Play

La pila de controladores Bluetooth genera identificadores de hardware según las siguientes plantillas:

  • BTHENUM\{ ServiceGUID}_VID& nnnnnnn
  • BTHENUM\{ ServiceGUID}_VID& nnnnnn_PID& nnnnn
  • BTHENUM\{ ServiceGUID}_LOCALMFG& nnnn

La pila del controlador Bluetooth genera identificadores compatibles según la siguiente plantilla:

  • BTHENUM\{ ServiceGUID}

ServiceGUID es un GUID de 16 bits expandido en un GUID de 128 bits, tal como se define en la especificación de Bluetooth. Por ejemplo, {00001124-0000-1000-8000-00805F9B34FB} corresponde a un dispositivo HID.

  • Los ocho dígitos siguientes a VID& corresponden al código de id. de proveedor.
  • Los cuatro dígitos siguientes a PID& corresponden al código de id. de producto.
  • Los cuatro dígitos siguientes a LOCALMFG& corresponden al fabricante de la radio Bluetooth local.
  • Las etiquetas VID/PID y LOCALMFG son independientes entre sí.

El identificador de dispositivo más genérico es serviceGUID por sí mismo. Por ejemplo:

BTHENUM\{0001124-0000-1000-8000-00805F9B34FB}

La pila de controladores Bluetooth se puede restringir para cargar el controlador de perfil y el software para que solo se ejecuten en una versión específica de un dispositivo remoto mediante los identificadores Plug and Play en el dispositivo remoto y el archivo INF. La pila de controladores Bluetooth genera un par VID/PID solo si el dispositivo publica un identificador plug and Play que la pila puede detectar mediante SDP. Por ejemplo:

BTHENUM\{0001124-0000-1000-8000-00805F9B34FB}_VID& nnnnnn_PID& nnnnn

La pila de controladores Bluetooth se puede restringir para cargar el controlador de perfil y el software para que solo se ejecuten en una radio Bluetooth local específica especificando la etiqueta LOCALMFG en el identificador del dispositivo en su archivo INF. Por ejemplo:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_LOCALMFG& nnnn