Instalar um dispositivo Bluetooth

Importante

Este artigo é para programadores. Se for um cliente com problemas de instalação de dispositivos Bluetooth, consulte Emparelhar um dispositivo Bluetooth no Windows

Existem dois tipos de instalação para drivers de perfil Bluetooth:

  • Instalação do lado do cliente para dispositivos remotos onde o dispositivo remoto anuncia seus serviços e o computador se conecta a ele. Os exemplos incluem: ratos, teclados e impressoras.
  • Instalação do lado do servidor onde o computador anuncia serviços e dispositivos remotos podem se conectar ao computador para usar esses serviços. Por exemplo, um fornecedor pode criar uma instalação no servidor para permitir que um dispositivo móvel imprima em uma impressora conectada ao computador.

Esses dois tipos de instalação exigem procedimentos de instalação diferentes.

Instalação de um driver de perfil do lado do cliente

Um usuário que deseja usar um dispositivo habilitado para Bluetooth coloca o dispositivo dentro do alcance do computador e inicia uma conexão do computador para o dispositivo remoto usando a seguinte sequência de instalação para um driver de perfil do lado do cliente.

  1. Selecione Adicionar um dispositivo Bluetooth no Painel de Controle para localizar todos os dispositivos dentro do alcance do computador.
  2. Selecione o dispositivo com o qual emparelhar.
  3. Emparelhe o dispositivo com o rádio local, o que pode ou não envolver uma troca de PIN.
  4. O rádio local emite uma consulta SDP (Service Discovery Protocol) para identificar os serviços suportados no dispositivo remoto.
  5. O Assistente de Novo Hardware Encontrado procura os drivers apropriados na unidade de disco rígido local e no Windows Update.
  6. Se o Assistente para Novo Hardware Encontrado não encontrar um driver apropriado para o dispositivo, ele solicitará que o usuário insira a mídia de instalação do driver de perfil que contém o arquivo de informações de configuração do dispositivo do driver de perfil (arquivo INF).

Instalando um driver de perfil do lado do servidor

A pilha de drivers Bluetooth suporta GUIDs de serviço definidos pelo Grupo de Interesses Especiais em Bluetooth (Bluetooth SIG) e GUIDs personalizados que não são definidos pelo Bluetooth SIG.

Observação

A ferramenta guidgen.exe fornecida com o SDK do Microsoft Windows pode ser usada para criar GUIDs personalizados.

Uma aplicação de instalação em modo de utilizador deve ser desenvolvida para expor a funcionalidade do computador. Esta funcionalidade pode ser utilizada por dispositivos Bluetooth remotos.

A aplicação de instalação deve comunicar-se com o stack de drivers Bluetooth para criar um GUID de serviço para a funcionalidade a ser exposta. Os fornecedores especificam o GUID do serviço no aplicativo e no arquivo INF de instalação do dispositivo.

O aplicativo de instalação deve chamar a API de modo de usuário BluetoothSetLocalServiceInfo. Antes que o aplicativo possa chamar essa API, o aplicativo deve ter o SE_LOAD_DRIVER_NAME privilégio de segurança. O exemplo de código a seguir demonstra como obter esse privilégio. Observe que o exemplo não demonstra manipulação de erros.

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

Arquivo INF do driver de perfil

O arquivo INF de um driver de perfil contém informações sobre um dispositivo Bluetooth para instalação no lado do cliente. Para uma instalação no servidor, o arquivo INF especifica um ID de dispositivo que corresponde ao GUID de serviço criado pelo aplicativo de instalação. Todos os dispositivos Bluetooth são membros da classe Bluetooth . O instalador de classe Bluetooth (Bthci.dll) auxilia na instalação de controladores de perfil.

Para obter mais informações sobre como criar e distribuir arquivos INF e instalar drivers, consulte Criando um arquivo INF e Seções e diretivas de arquivo INF.

Plug and Play Identificadores

A pilha de drivers Bluetooth gera IDs de hardware de acordo com os seguintes modelos:

  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnn
  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnn_PID& nnnn
  • BTHENUM\{ ServiceGUID}_LOCALMFG& nnnn

A pilha de drivers Bluetooth gera IDs compatíveis de acordo com o seguinte formato.

  • BTHENUM\{ ServiceGUID}

ServiceGUID é um GUID de 16 bits expandido para um GUID de 128 bits, conforme definido pela especificação Bluetooth. Por exemplo, {00001124-0000-1000-8000-00805F9B34FB} corresponde a um dispositivo HID.

  • Os oito dígitos seguintes a VID& correspondem ao código de identificação do fornecedor.
  • Os quatro dígitos seguintes a PID& correspondem ao código de identificação do produto.
  • Os quatro dígitos seguintes a LOCALMFG& correspondem ao fabricante do rádio Bluetooth local.
  • As tags VID/PID e LOCALMFG são independentes uma da outra.

O ID de dispositivo mais genérico é um ServiceGUID por si só. Por exemplo:

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

A pilha de drivers Bluetooth pode ser restrita para carregar o seu driver de perfil e software para executar apenas em uma versão específica de um dispositivo remoto, utilizando IDs de Plug and Play, tanto no dispositivo remoto quanto no ficheiro INF. A pilha de drivers Bluetooth gera um par VID/PID somente se o dispositivo publicar uma ID Plug and Play que a pilha pode detetar usando SDP. Por exemplo:

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

A stack de drivers Bluetooth pode ser restrita para carregar o driver de perfil e o software de modo a serem executados apenas num rádio Bluetooth local específico, especificando a tag LOCALMFG no ID do dispositivo no seu ficheiro INF. Por exemplo:

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