蓝牙主机无线电支持
本文提供有关蓝牙无线电支持的典型问题的解答。
Windows 中支持的蓝牙主机控制器
如果使用 Windows,蓝牙无线电可以打包为外部保护装置或嵌入计算机内部,但必须连接到计算机的 USB 端口之一。 有关详细信息,请参阅 蓝牙设备参考。
如果 Windows 与设备 ID (Windows Vista) 不匹配,强制加载蓝牙堆栈
新的蓝牙无线电可能与 Windows 随附的蓝牙 INF (Bth.inf) 中的任何设备 ID 不匹配。 缺少的匹配可防止 Windows 为设备加载蓝牙堆栈。 确保无线电通过以下方式之一使用本机蓝牙堆栈:
- 为引用 Bth.inf 的无线电创建 INF。 有关蓝牙无线电的供应商专用 INF 文件的示例,请参阅附录 B:用在 Windows Vista 中的供应商提供的 INF 文件的示例。
- 在设备固件中存储扩展兼容的 ID OS 描述符,该描述符指定了适当的兼容和子不兼容 ID。 有关扩展兼容的 ID OS 描述符的信息,请参阅 Microsoft OS 描述符。
- 强制加载蓝牙堆栈
以下过程使用设备管理器来强制为新的无线电加载蓝牙堆栈:
- 运行“控制面板”中的“设备管理器”应用程序,并在设备列表中识别蓝牙无线电。
- 若要运行“更新驱动程序软件向导”,请右键单击蓝牙无线电项并选择“更新驱动程序软件”。
- 使用该向导强制安装蓝牙堆栈。
有关此过程的详细说明,请参阅附录 A:如何在 Windows Vista 中的新硬件上安装内置蓝牙驱动程序。
确保对蓝牙无线电的内置支持
IHV 应执行以下步骤,确保其蓝牙无线电在 Windows 上具有内置支持:
- 确保无线电支持扩展兼容的 ID OS 功能描述符。 有关详细信息,请参阅 Microsoft OS 描述符。
- 获取蓝牙无线电硬件和相关 INF 文件的 Windows 认证计划批准。 有关蓝牙无线电的供应商专用 INF 文件的示例,请参阅附录 B:用在 Windows Vista 中的供应商提供的 INF 文件的示例。
- 使用合作伙伴中心通过 Windows Update 提供 INF 文件
无法再将无线电添加到内置 Bth.inf 文件中。
使用Microsoft定义的类 GUID 的 INF 文件
仅在引用内置蓝牙 INF 文件(Bth.inf)的 INF 文件中,才将Microsoft定义的类全局唯一标识符 (GUID) ({e0cbf06c cd8b 4647 bb8a 263b43f0f974})用于蓝牙设备。 设备使用本机 Windows 安装程序、服务和通知区域图标。 如果实现自己的蓝牙堆栈,则必须创建特定于供应商的类 GUID 并使用 WLK 测试工具来确保堆栈符合未分类的 Windows 认证计划。
为何缺少“控制面板”中的蓝牙应用程序
“控制面板”中的蓝牙应用程序已合并到“设备和打印机”中。 因此,只能从“设备和打印机”内执行以下操作:调整蓝牙无线电设置、管理蓝牙设备以及添加新的蓝牙设备。
为什么蓝牙图标可能不会显示在任务栏中
如果蓝牙图标未显示在任务栏中,则可能是因为以下一个或多个原因:
- 蓝牙无线电已关闭。
- 蓝牙无线电处于仿真模式。
- 在 “蓝牙设置” 对话框中, 未选中通知区域中 的“显示蓝牙”图标复选框。
对蓝牙无线电固件更新的 Windows 支持
目前,Windows 随附的蓝牙堆栈不支持直接支持固件更新。 但是,对于通过 USB 端口连接的蓝牙无线电,Windows 支持符合 USB 设备固件更新 (DFU) 规范的固件更新。 IHV 可以创建一个用户模式实用工具,以便通过 DFU 接口与其蓝牙无线电通信,从而执行固件更新并重启无线电。
对供应商专用直通命令的 Windows 支持
Windows 包括对供应商专用直通命令的支持。 这些内核模式接口记录在 WDK 中。
对供应商提供的配置文件的 Windows 支持
Windows 支持供应商提供的蓝牙配置文件。 蓝牙 SIG 标准化的配置文件的 GUID 包含在 INF 文件中(Bth.inf)。
当用户将蓝牙设备与计算机配对时,系统会将设备的配置文件与 Bth.inf 中列出的配置文件进行比较。 如果设备配置文件与其中一个配置文件不匹配,用户将收到一个对话框,要求他们提供适当的供应商软件。
想要供应商专用配置文件的供应商必须使用自己的 GUID,并在供应商专用 INF 文件中引用它。 此 INF 文件可以使用 Include 和 Needs 指令来引用相应的 Bth.inf 节和指令。 有关供应商专用 INF 文件的示例,请参阅附录 B:用在 Windows Vista 中的供应商提供的 INF 文件的示例。
默认启用的蓝牙配置文件和协议
Windows 随附的蓝牙堆栈仅提供对一些蓝牙配置文件的内置支持。 供应商必须实现所需的服务来支持任何其他蓝牙配置文件,这非常类似他们对 USB 和 PCI 的处理方式。 Windows 可以使用默认启用的蓝牙配置文件(称为受支持的配置文件)来生成物理设备对象 (PDO)。 这样就可以默认加载启用配置文件所需的驱动程序。 可以通过查看 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Bthport \Parameters 项下的 SupportedServices 和 UnsupportedServices 值来识别注册表中受支持的配置文件。
注意
只有在安装蓝牙设备后,Bthport 项才会添加到注册表。
下表列出了 Bth.inf 中受 Windows 支持的配置文件。
服务 ID | 说明 |
---|---|
{00001101-0000-1000-8000-00805f9b34fb} | SPP |
{00001103-0000-1000-8000-00805f9b34fb} | DUN |
{00001124-0000-1000-8000-00805f9b34fb} | HID |
{00001126-0000-1000-8000-00805f9b34fb} | HCRP |
Windows 蓝牙配置文件
为使启用了蓝牙的设备或配件与运行 Windows 10 的电脑配合使用,设备需要使用受支持的蓝牙配置文件之一。 请访问受支持的蓝牙配置文件查看最新列表。
如果 IHV 不希望 Windows 为其设备自动生成 PDO,则可以将服务 GUID 添加到不受支持的服务列表中。 有关示例,请参阅 Bth.inf。
组策略如何阻止安装蓝牙无线电
有关如何使用组策略阻止安装蓝牙无线电的详细信息,请参阅控制设备安装和组策略使用情况的分步指南的“阻止安装禁止的设备”部分。
对蓝牙无线电使用以下兼容的 ID:
USB\Class_E0(对于基于 USB 的无线电)MS_BTHX_BTHMINI(对于非 USB 无线电)
注意
如果已安装蓝牙无线电,这不会移除蓝牙驱动程序支持。 此外,此策略需要应用于预安装的映像。
如何更改 Windows 发布的设备 ID 配置文件记录
设备 ID 配置文件定义了可用于向远程设备提供标识信息的 SDP 记录。 Windows 使用在配对设备上发布的设备 ID 记录为通用蓝牙服务提供特定于设备的硬件 ID。
Windows 还会将用以标识 Windows 设备的本地设备 ID 记录发布到远程蓝牙设备。 可以调整默认值,以便更好地识别特定的 Windows 设备。 这些值在下表中定义,位于 HKLM\System\CCS\services\BTHPORT\Parameters 注册表项下:
ValueName | 类型 | 说明 | 默认值 |
---|---|---|---|
DIDVendorIDSource | DWORD | 0x01 = 蓝牙 SIG 命名空间 0x02 = USB 论坛命名空间 |
0x01 |
DIDVendorID | DWORD | OEM 指定的 VendorID | 0x06 – Microsoft 供应商 ID |
DIDProductID | DWORD | OEM 指定的 ProductID | 0x01 – Microsoft Windows |
DIDVersion | DWORD | OEM 指定的产品版本 | 0x0800 – Windows 8 |