Instalando um dispositivo Bluetooth
Importante
Este tópico é para programadores. Se você for um cliente com problemas de instalação de dispositivo Bluetooth, consulte Emparelhar um dispositivo Bluetooth no Windows
Há dois tipos de instalação para drivers de perfil Bluetooth:
- Instalação do lado do cliente para dispositivos remotos em que o dispositivo remoto anuncia seus serviços e o computador se conecta a ele. Exemplos incluem: mouses, teclados e impressoras.
- Instalação do lado do servidor em que 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 do lado do 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.
Instalando um driver de perfil do lado do cliente
Um usuário que deseja usar um dispositivo habilitado para Bluetooth traz 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.
- Selecione Adicionar um dispositivo Bluetooth no Painel de Controle para localizar todos os dispositivos dentro do alcance do computador.
- Selecione o dispositivo com o qual deseja emparelhar.
- Emparelhe o dispositivo com o rádio local, que pode ou não envolver uma troca de PIN.
- A rádio local emite uma consulta SDP para identificar os serviços suportados no dispositivo remoto.
- O Assistente de Novo Hardware Encontrado procura drivers apropriados na unidade de disco rígido local e no Windows Update.
- Se o Assistente de 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 (arquivo INF) do driver de perfil.
Instalando um driver de perfil do lado do servidor
A pilha de drivers Bluetooth oferece suporte a GUIDs de serviço, conforme definido pelo SIG Bluetooth, e GUIDs personalizados não definidos pelo SIG Bluetooth.
Observação
A ferramenta guidgen.exe fornecida com o SDK do Microsoft Windows pode ser usada para criar GUIDs personalizados.
Um aplicativo de instalação no modo de usuário deve ser gravado para expor a funcionalidade do computador que os dispositivos Bluetooth remotos podem usar.
O aplicativo de instalação deve se comunicar com a pilha 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 privilégio de segurança SE_LOAD_DRIVER_NAME. O exemplo de código a seguir demonstra como obter esse privilégio. Observe que o exemplo não demonstra o tratamento 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 do lado do servidor, o arquivo INF especifica uma 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) ajuda com a instalação de drivers 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 IDs
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 modelo:
- BTHENUM\{ ServiceGUID}
ServiceGUID é um GUID de 16 bits expandido em 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 após VID& correspondem ao código de identificação do fornecedor.
- Os quatro dígitos após 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 entre si.
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 driver de perfil e o software para ser executado somente em uma versão específica de um dispositivo remoto usando IDs Plug and Play no dispositivo remoto e no arquivo INF. A pilha de drivers Bluetooth gera um par VID/PID somente se o dispositivo publicar uma ID Plug and Play que a pilha possa detectar usando SDP. Por exemplo:
BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_VID& nnnnnnnn_PID& nnnn
A pilha de drivers Bluetooth pode ser restrita a carregar o driver de perfil e o software para ser executado somente em um rádio Bluetooth local específico, especificando a marca LOCALMFG no ID do dispositivo no arquivo INF. Por exemplo:
BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_LOCALMFG& nnnn