Partilhar via


Pilha de drivers Bluetooth

O stack de drivers Bluetooth compreende o núcleo do suporte fornecido pela Microsoft para o protocolo Bluetooth. Com esta pilha, os dispositivos habilitados para Bluetooth podem localizar uns aos outros e estabelecer conexões. Através destas ligações, os dispositivos podem trocar dados e interagir uns com os outros através de várias aplicações.

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

Diagrama mostrando a arquitetura da pilha de drivers Bluetooth.

A imagem da arquitetura inclui os seguintes componentes e exemplos:

  • Modo de utilizador

    • Aplicativo de modo de usuário: um aplicativo de modo de usuário acessa a pilha de drivers 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 a BthProps.lib, em vez de IrProps.lib, para usar APIs como BluetoothSetLocalServiceInfo.

  • Exemplos de drivers de perfil

    • Driver do 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), PERFIL DE CONTROLE REMOTO A/V (AVRCP), PERFIL DE DISTRIBUIÇÃO A/V GENÉRICO (GAVDP) e perfil de acesso RDIS comum (CIP).

    • Audio Kernel Mode Driver: Um exemplo de um driver de perfil que se comunica entre a pilha de áudio do Windows e o BthPort, que acede às interfaces SCO contidas no BthPort. Os perfis possíveis incluem o perfil Mãos Livres (HFP), o perfil de Auscultadores (HSP), o perfil de Telefonia sem Fios (CTP) e o perfil de Intercomunicação (ICP). Este 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 Bluetooth Low Energy (LE).

  • Componentes da pilha de drivers Bluetooth

    • IrProps: Um componente usado para retrocompatibilidade com drivers de perfil criados para a primeira versão da pilha de drivers Bluetooth. IrProps é fornecido apenas para compatibilidade com versões anteriores. Para novos desenvolvimentos, use o componente BthProps .

    • BthProps: Um componente que contém a implementação da interface de usuário Bluetooth juntamente com a implementação das APIs Bluetooth que os aplicativos de modo de usuário acessam. Este componente envia consultas para o BthServ por meio de chamadas de procedimento remoto (RPC). Além disso, o BthProps realiza trocas de pinos com o BthPort através de IOCTLs privadas. O BthProps é executado em qualquer sistema com rádio Bluetooth.

    • BthServ: Um serviço responsável pelo armazenamento em cache e encaminhamento de dados de consulta para o Bthport.

    • BthCi: O instalador da classe Bluetooth.

    • WshBth: O componente auxiliar de soquete Bluetooth do Windows. WshBth é chamado pela camada de soquetes do Windows para executar operações de soquete. WshBth chama principalmente para RFCOMM através da Transport Driver Interface (TDI). O WshBth também liga para o BthServ para realizar 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 através de uma conexão Bluetooth aberta. O OBEX se comunica com dispositivos remotos através de RFCOMM que usa o componente WshBth.

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

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

    • BthPan: O componente que implementa o perfil PAN (Personal Area Network), que fornece conexões TCP através de uma conexão Bluetooth aberta. No Windows Vista e Windows XP, o BthPan suporta apenas conexões de saída. 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 da RFCOMM expõe a interface TDI, o que permite que este componente apareça como um transporte de rede. Essa abordagem é como o WshBth se conecta ao Bluetooth para enviar e receber dados de APIs de modo de usuário.

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

    • BthModem: O componente que implementa portas COM virtuais e rede dial-up (DUN). BthModem direciona todas as operações de E/S e controle para RFCOMM através 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 de ônibus Bluetooth. O BthEnum se comunica com o gerenciador Plug and Play (PnP) para criar e destruir objetos de dispositivo usados para habilitar serviços Bluetooth. O BthEnum cria uma DOP para cada serviço suportado por um dispositivo remoto conectado. Por exemplo, quando um usuário conecta um mouse habilitado para Bluetooth, o Windows descobre que o mouse suporta o serviço Bluetooth HID. O Windows cria um PDO para o serviço HID que faz com que o gestor de PnP carregue o HidBth.

      Observação

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

    • BthLEEnum: O motorista de ônibus Bluetooth Low Energy (LE). BthLEEnum implementa o protocolo ATT e o perfil GATT. Este driver também é responsável pela criação de PDOs para representar os dispositivos remotos e seus serviços principais.

    • BthPort: Um minidriver carregado pela miniporta BthUSB. O BthPort fornece quatro componentes:

      • O componente HCI comunica com o rádio local habilitado para Bluetooth através da Host Controller Interface (HCI) 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 SCO (Connection-Oriented). Este protocolo suporta a criação de ligações ponto-a-ponto a um dispositivo remoto. Os clientes SCO se comunicam com a interface SCO construindo e enviando blocos de solicitação Bluetooth (BRBs).

      • L2CAP implementa o protocolo de controle e adaptação de link lógico Bluetooth. Este protocolo suporta a criação de um canal sem perdas para um dispositivo remoto. Os clientes L2CAP se comunicam com a interface L2CAP construindo e enviando BRBs.

      • O SDP implementa o Bluetooth Service Discovery Protocol.

    • BthUsb.sys: O miniport que abstrai a interface de barramento do BthPort.