安装蓝牙设备

05/29/2020

本文内容

重要

本主题面向程序员。 如果你是遇到蓝牙设备安装问题的客户,请参阅 在 Windows 中配对蓝牙设备

蓝牙配置文件驱动程序有两种安装类型:

远程设备的 客户端安装,远程设备在该远程设备上公布其服务并且计算机连接到它。 示例包括:鼠标设备、键盘和打印机。

服务器端安装 ,其中计算机公布服务和远程设备可以连接到计算机以使用这些服务。 例如,供应商可能会创作服务器端安装,以使 PDA 能够打印到连接到计算机的打印机。

这两种安装类型需要不同的安装过程。

安装客户端配置文件驱动程序

如果用户想要使用启用 Bluetooth 的设备,则会将设备置于计算机范围内,并使用客户端配置文件驱动程序的以下安装顺序启动从计算机到远程设备的连接。

在 控制面板 中启动蓝牙设备,查找计算机范围内的所有设备。

选择要配对的设备。

将 (或绑定与本地无线电) 设备配对。 这不一定涉及 PIN 交换。

本地收音机发出一个 SDP 查询,用于识别远程设备上支持的服务。

" 发现新硬件" 向导 在本地硬盘驱动器上搜索合适的驱动程序,并在 Windows 更新上搜索/或。

如果 发现的新硬件向导 找不到设备的适当驱动程序,系统会提示用户插入配置文件驱动程序安装媒体,其中包含配置文件驱动程序的设备安装信息文件 (INF 文件) 。

安装服务器端配置文件驱动程序

蓝牙驱动程序堆栈支持蓝牙 SIG 定义的服务 Guid,以及自定义 Guid (即,不是由蓝牙 SIG) 定义的 Guid。

备注

Microsoft Windows SDK 提供的 Guidgen.exe 工具可用于创建自定义 guid。

必须编写用户模式安装应用程序才能公开远程蓝牙设备可以使用的计算机功能。

安装应用程序必须与蓝牙驱动程序堆栈进行通信,以便为要公开的功能创建服务 GUID。 供应商在应用程序和其设备安装 INF 文件中指定服务 GUID。

安装应用程序必须调用用户模式 API BluetoothSetLocalServiceInfo。 在应用程序可以调用此 API 之前,应用程序必须具有 "SE _ 加载 _ 驱动程序 _ 名称" 安全权限。 下面的代码示例演示如何获取此特权。 请注意 ,该示例不演示错误处理。

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)

配置文件驱动程序 INF 文件

配置文件驱动程序的 INF 文件包含有关用于客户端安装的蓝牙设备的信息。 对于服务器端安装,INF 文件指定了与安装应用程序创建的服务 GUID 相对应的设备 ID。 所有蓝牙设备均为 蓝牙 类的成员。 蓝牙类安装程序 (Bthci.dll) 可帮助安装配置文件驱动程序。

有关创建和分发 INF 文件和安装驱动程序的详细信息,请参阅 创建 Inf 文件 和 inf 文件部分和指令。

即插即用 Id

蓝牙驱动程序堆栈根据以下模板生成硬件 Id:

BTHENUM \ { ServiceGUID} _ VID& nnnnnnnn

BTHENUM \ { ServiceGUID} _ VID& nnnnnnnn _ PID& nnnn

BTHENUM \ { ServiceGUID} _ LOCALMFG& nnnn

蓝牙驱动程序堆栈根据以下模板生成兼容的 Id:

BTHENUM \ { ServiceGUID}

ServiceGUID 是扩展为128位 guid 的16位 guid,由蓝牙规范定义。 例如,{00001124-0000-1000-8000-00805F9B34FB} 对应于一个 HID 设备。

VID 后面的8位 & 对应于供应商 ID 代码。

PID 后面的4位数 & 对应于产品 ID 代码。

LOCALMFG 后面的4位数 & 与本地蓝牙无线电的制造商相对应。

VID/PID 和 LOCALMFG 标记彼此独立。

最常见的设备 ID 是 ServiceGUID 本身。 例如:

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

通过使用远程设备和 INF 文件中的即插即用 Id,可以限制蓝牙驱动程序堆栈加载配置文件驱动程序和软件,以便仅在远程设备的特定版本上运行。 请注意 ,仅当设备发布了堆栈可以使用 SDP 检测即插即用 ID 时,蓝牙驱动程序堆栈才生成 VID/PID 对。 例如:

BTHENUM \ {00001124-0000-1000-8000-00805F9B34FB} _ VID& nnnnnnnn _ PID& nnnn

可以通过在 INF 文件中的设备 ID 中指定 LOCALMFG 标记,将蓝牙驱动程序堆栈限制为仅加载配置文件驱动程序和软件以便在特定本地蓝牙收音机上运行。 例如:

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

服务器系统安装蓝牙驱动,安装蓝牙设备 - Windows drivers | Microsoft Docs相关推荐

  1. 文件服务器映驱动,映射驱动程序文件 - Windows drivers | Microsoft Docs

    映射驱动程序文件 05/13/2020 本文内容 替换驱动程序文件可能会很困难. 通常,必须启动到 Microsoft Windows 安全生成,替换驱动程序二进制文件,然后重新启动. 使用映射文件存 ...

  2. 计算机阻止打印机驱动,设备 阻止用户在 Windows 10 (安装打印机) - Windows security | Microsoft Docs...

    设备: 防止用户安装打印机驱动程序 04/19/2017 本文内容 适用范围 Windows 10 介绍设备:阻止用户安装打印机驱动程序安全策略设置的最佳方案. 位置.值 和安全注意事项. 参考 对于 ...

  3. 移动宽带无法连接微软服务器,无法连接到移动宽带 - Windows Client | Microsoft Docs...

    从移动运营商进行无线更新后,设备无法连接到移动宽带 10/19/2020 本文内容 本文提供了在移动运营商进行无线更新后设备无法连接到移动宽带的问题的解决方法. 适用于:  Windows 10 - ...

  4. win7安装android驱动失败怎么办,Win7蓝牙驱动安装失败的原因分析与解决方法

    蓝牙是一种支持设备短距离通信的无线电技术,现在不管是手机还是电脑都已经普遍的使用蓝牙功能了.如果Win7系统电脑没有安装蓝牙驱动的话,是需要安装后才能使用的.最近,有用户在安装蓝牙驱动的时候,发现安装 ...

  5. linux 蓝牙打印机驱动安装失败,蓝牙驱动安装失败如何解决_蓝牙驱动安装不了怎么处理...

    我们要在电脑中使用蓝牙设备的时候,就要首先安装蓝牙驱动才可以正常使用的,但是有不少小伙伴在安装蓝牙驱动的时候,却遇到安装失败的情况,该怎么解决这样的问题呢,下面系统城小编给大家讲讲蓝牙驱动安装不了的详 ...

  6. CP2102 USB to UART Bridge Controller 串口驱动安装(windows or Ubuntu)

    CP2102 USB to UART Bridge Controller 驱动安装(windows or Ubuntu) 串口驱动下载 串口驱动安装 reference 串口驱动下载 CP2102是一 ...

  7. 云服务器虚拟GPU驱动安装

    云服务器虚拟GPU驱动安装 最近在利用云服务器的虚拟GPU进行深度学习时会出现英伟达官方提供的驱动安装不了或者安装之后在训练时会出现突然变得特别慢等问题. 这是因为 这种vgn显卡,,是虚拟化显卡,将 ...

  8. 工控机安装服务器系统,工控机驱动安装步骤及流程说明

    工控机调试安装流程说明: 一. 手动安装Windows XP操作系统. 二. 安装主板驱动和显卡驱动. 三. 安装Office2003.(根据提示进行安装) 四. 安装733和724板卡驱动. 五. ...

  9. 服务器系统装显卡驱动,windows2019服务器系统安装显卡驱动(A卡篇)

    原创:张荣国 今天捣腾一台旧电脑安装windows2019服务器系统,测网站等.安装windows2019倒是没什么难度.本来想着服务器系统,也不用理它驱动了,毕竟基本驱动它会自己装上.但后来接显示器 ...

最新文章

  1. mac的mysql数据库管理_Mac使用MySQL Workbench管理MySQL数据库
  2. 企业环境下如何把ubuntu的dhcp改为静态IP
  3. linux中的date的用法
  4. mysql timestamp 差值_MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法(两个日期之间的差值)...
  5. PostgreSQL · 特性介绍 · 全文搜索介绍
  6. 文件的输入/输出操作
  7. 前端学习(3067):vue+element今日头条管理-上午总结
  8. 美柚上云 致力成为最懂女人的互联网企业
  9. 来自山西机器人乐队_冰山上的机器人X三十禁放映 | 庞宽、李霄云对谈预告
  10. Python time strftime() 方法
  11. 静态网站与动态网站的区别 静态网站生成工具
  12. ChipScope用法总结
  13. MVC模式中Controller控制器为什么是Servlet?怎么理解?
  14. 【GIS开发】批量下载和拼接地图瓦片(Python)
  15. 【GA MTSP】基于matlab遗传算法求解多旅行商问题(同起点不同终点)【含Matlab源码 1325期】
  16. mysql插件的初始化
  17. 计算机控制技术第二章,微型计算机控制技术 赖寿宏版 课件 第二章.ppt
  18. 天下无贼台词经典(收藏)
  19. 2017第九届广州国际园林机械与园艺工具展 2017第九届广州国际园林景观与美好人居博览会 第九届广州国际花卉盆栽及花店花园用品展览会 2017中国花卉展览会 第九届广州国际绿化苗木展会刊(参展商名录
  20. java jni c 指针_通过JNI传递C和Java之间的指针

热门文章

  1. 跟网络游戏,手机APP游戏告别
  2. 用Web标准进行开发[转]
  3. 云服务器及其存储性能测试方法
  4. 只有两个键的键盘,只会复制粘贴
  5. 微信小程序学习用demo:大写计算器;数字转换为大写
  6. python拼音数字输出接口_python: 拼音处理模块
  7. DBA之路:小小DBA一年工作总结
  8. 求解斐波那契数列模$p$意义下最短循环节
  9. python 豆瓣源_使用douban源下载python包
  10. Windows8内核模式下开发NDIS应用 NDIS Filter讲解