Compartilhar via


Pilha de driver Bluetooth

A pilha de drivers Bluetooth compreende a parte central do suporte fornecido pela Microsoft para o protocolo Bluetooth. Com essa pilha de tecnologias, os dispositivos com suporte a Bluetooth podem localizar uns aos outros e estabelecer conexões. Nessas conexões, os dispositivos podem trocar dados e interagir entre si por meio de vários aplicativos.

A imagem a seguir mostra os módulos dentro da pilha de drivers Bluetooth, juntamente com possíveis drivers personalizados de modo de usuário e de núcleo, não incluídos no Windows Vista e versões posteriores. Os drivers personalizados são conhecidos como drivers de perfil.

Diagrama mostrando a arquitetura de pilha do driver Bluetooth.

A imagem de arquitetura inclui os seguintes componentes e exemplos:

  • Modo de usuário

    • Aplicativo em modo de usuário: um aplicativo em modo de usuário acessa a pilha de driver Bluetooth por meio de APIs publicadas. Para obter mais informações, consulte Sobre Bluetooth na documentação do SDK do Windows.

      Os aplicativos de modo de usuário devem se vincular ao BthProps.lib, em vez de IrProps.lib, para usar APIs como BluetoothSetLocalServiceInfo.

  • Exemplos de drivers de perfil

    • Driver de modo kernel WAP: o componente WAP (Wireless Application Protocol) é um exemplo de um driver de perfil que se comunica entre a pilha de rede do Windows e o BthPort. Ele acessa a interface L2CAP e, opcionalmente, acessa a interface SDP (Service Discovery Protocol) contida no L2CAP. Outros perfis possíveis incluem o perfil de Distribuição de Áudio Avançado (A2DP), o perfil de Controle Remoto A/V (AVRCP), o PERFIL de Distribuição A/V Genérico (GAVDP) e o perfil comum de ACESSO ISDN (CIP).

    • Driver de Modo Kernel de Áudio: um exemplo de um driver de perfil que se comunica entre a pilha de áudio do Windows e o BthPort, que acessa as interfaces SCO contidas no BthPort. Os perfis possíveis incluem o Perfil Hands Free (HFP), o Perfil de Headset (HSP), o Perfil de Telefonia Sem Fio (CTP) e o Perfil de Interfone (ICP). Esse driver de perfil está incluído no Windows a partir do Windows 8.

    • Perfil do Monitor de Frequência Cardíaca Bluetooth LE: um exemplo de um driver de perfil Bluetooth LE que se comunica com a API de LE (Bluetooth Low Energy).

  • Componentes da pilha do driver Bluetooth

    • IrProps: um componente usado para compatibilidade retroativa com drivers de perfil criados para a primeira versão da pilha de driver do Bluetooth. IrProps é fornecido apenas para compatibilidade com versões anteriores. Para um novo desenvolvimento, use o componente BthProps .

    • BthProps: um componente que contém a implementação da interface do usuário Bluetooth, juntamente com a implementação das APIs Bluetooth que os aplicativos no modo de usuário acessam. Esse componente envia consultas ao BthServ por meio de RPC (chamadas de procedimento remoto). Além disso, o BthProps executa trocas de pinos com BthPort por meio de IOCTLs privados. O BthProps é executado em qualquer sistema com um rádio habilitado para Bluetooth.

    • BthServ: um serviço responsável por armazenar em cache e encaminhar dados de investigação para o Bthport.

    • BthCi: o instalador da classe Bluetooth.

    • WshBth: o componente auxiliar do soquete bluetooth do Windows. O WshBth é chamado pela camada de soquetes do Windows para executar operações de soquete. O WshBth chama principalmente o RFCOMM por meio da TDI (Interface do Driver de Transporte). O WshBth também faz chamadas para o BthServ para executar consultas remotas de dispositivos e para o BthPort para realizar consultas de rádio locais.

    • FSquirt: um componente OBEX (Object Exchange) não extensível que permite aos usuários enviar e receber arquivos por meio de uma conexão Bluetooth aberta. O OBEX se comunica com dispositivos remotos por meio do RFCOMM que usa o componente WshBth.

    • BthPrint: um componente que implementa o HCRP (Hardcopy Cable Replacement Profile). Esse componente permite que o sistema de impressão envie dados e receba dados de impressoras habilitadas para Bluetooth. O BthPrint comunica-se com a interface SDP no BthPort para consultar impressoras remotas e a interface L2CAP no BthPort para enviar e receber dados.

    • HidBth: o componente que implementa o perfil HID (Dispositivo de Interface Humana). HidBth também se comunica com as interfaces L2CAP e SDP no BthPort. HidBth conecta-se à pilha HID de maneira semelhante ao módulo HID USB.

    • BthPan: o componente que implementa o perfil PAN (Rede de Área Pessoal), que fornece conexões TCP em uma conexão Bluetooth aberta. No Windows Vista e no Windows XP, o BthPan dá suporte apenas a conexões de saída. O BthPan também é um cliente do componente BthPort e usa as interfaces L2CAP e SDP.

    • RFCOMM: o componente que implementa o protocolo de emulação de cabo serial Bluetooth. A RFCOMM também usa as interfaces L2CAP e SDP encontradas no BthPort. A borda superior do RFCOMM expõe a interface TDI, que permite que esse componente apareça como um transporte de rede. Essa abordagem é como o WshBth se conecta ao Bluetooth para enviar e receber dados de APIs no modo de usuário.

      Os aplicativos no modo de usuário podem acessar o RFCOMM usando as interfaces winsock descritas no SDK do Windows.

    • BthModem: o componente que implementa portas COM virtuais e rede discada (DUN). O BthModem direciona todas as operações de E/S e controle para RFCOMM por meio de uma interface TDI. A borda superior do BthModem se comunica com o arquivo Serial.sys para dar a aparência de ser uma porta COM sem fio.

    • BthEnum: O motorista do ônibus Bluetooth. O BthEnum se comunica com o gerenciador do Plug and Play (PnP) para criar e destruir objetos de dispositivo usados para habilitar os serviços Bluetooth. O BthEnum cria um PDO para cada serviço compatível com um dispositivo remoto conectado. Por exemplo, quando um usuário conecta um mouse habilitado para Bluetooth, o Windows descobre que o mouse dá suporte ao serviço BLUETOOTH HID. O Windows cria um PDO para o serviço HID que faz com que o gerenciador PnP carregue HidBth.

      Observação

      O BthEnum não cria PDOs para serviços que aparecem na chave do registro UnsupportedServices conforme especificado no arquivo INF Bth.inf.

    • BthLEEnum: O motorista de ônibus de Baixa Energia Bluetooth (LE). O BthLEEnum implementa o protocolo ATT e o perfil GATT. Esse driver também é responsável por criar PDOs para representar os dispositivos remotos e seus serviços primários.

    • BthPort: Um minidriver carregado pelo miniporto BthUsb. O BthPort fornece quatro componentes:

      • O componente HCI se comunica com o rádio local habilitado para Bluetooth por meio da HCI (Interface do Controlador de Host) definida na especificação Bluetooth. Como todos os rádios habilitados para Bluetooth implementam a especificação HCI, o BthPort é capaz de se comunicar com qualquer rádio habilitado para Bluetooth, independentemente do fabricante ou modelo.

      • O componente SCO implementa o protocolo Síncrono Connection-Oriented (SCO). Esse protocolo dá suporte à criação de conexões ponto a ponto com um dispositivo remoto. Os clientes SCO se comunicam com a interface SCO criando e enviando BRBs (blocos de solicitação Bluetooth).

      • O L2CAP implementa o controle de vínculo lógico Bluetooth e o protocolo de adaptação. Esse protocolo dá suporte à criação de um canal sem perdas para um dispositivo remoto. Os clientes L2CAP se comunicam com a interface L2CAP criando e enviando BRBs.

      • O SDP implementa o Protocolo de Descoberta de Serviço Bluetooth.

    • BthUsb.sys: o miniporto que abstrai a interface de barramento do BthPort.