Windows蓝牙驱动开发-蓝牙 IOCTL

蓝牙驱动程序堆栈为配置文件驱动程序提供了多个 IOCTL,来收集有关以下内容的信息:

本地蓝牙无线电和系统;

远程蓝牙设备;

会使即插即用 (PnP) 管理器加载配置文件驱动程序的设备;

为收集有关本地蓝牙无线电和系统的信息,配置文件驱动程序会使用 IOCTL_BTH_GET_LOCAL_INFO。 IOCTL 返回后,其 AssociatedIrp.SystemBuffer 成员包含指向 BTH_LOCAL_RADIO_INFO 结构的指针,该结构包含有关本地蓝牙无线电和系统的信息,包括用于指示是否可以发现和连接到本地无线电的标志。 所返回的 BTH_LOCAL_RADIO_INFO 结构包含 BTH_DEVICE_INFO 结构和 BTH_RADIO_INFO 结构,前者包含特定于系统的信息,后者包含本地无线电特定信息。

为收集有关特定远程蓝牙设备的信息,配置文件驱动程序会使用 IOCTL_BTH_GET_RADIO_INFO。 IOCTL 返回后,其 AssociatedIrp.SystemBuffer 成员包含一个指向 BTH_RADIO_INFO 结构的指针,该结构提供有关特定远程无线电的信息,包括是否可以发现和连接到远程无线电。

为收集有关已发现的所有远程无线电的信息,配置文件驱动程序会使用 IOCTL_BTH_GET_DEVICE_INFO。 IOCTL 返回后,其 AssociatedIrp.SystemBuffer 成员包含一个指向 BTH_DEVICE_INFO_LIST 的指针,该结构包含一个 BTH_DEVICE_INFO 结构数组。 BTH_DEVICE_INFO_LIST 结构包含已发现的每个远程无线电的一个数组条目。 用户模式 BluetoothGetDeviceInfo API 使用此功能返回有关所有远程无线电的信息。

为收集有关会使 PnP 管理器加载它的远程设备的信息,配置文件驱动程序会使用 IOCTL_INTERNAL_BTHENUM_GET_DEVINFO。 IOCTL 返回后,其 AssociatedIrp.SystemBuffer 成员包含一个指向 BTH_DEVICE_INFO 结构的指针,该结构包含有关远程设备的信息,包括其蓝牙设备地址、设备状态及其设备类 (CoD) 设置。

配置文件驱动程会序使用 IOCTL_INTERNAL_BTHENUM_GET_ENUMINFO 获取有关导致 PnP 管理器加载配置文件驱动程序的基础设备和服务的信息。 IOCTL 返回后,其 AssociatedIrp.SystemBuffer 成员包含一个指向 BTH_ENUMERATOR_INFO 结构的指针,该结构包含供应商提供有关设备的信息,包括端口号、设备标志、供应商 ID 和产品 ID。

相关推荐
Sakura_j_h_6 小时前
Python 在定时任务里输出 emoji,UnicodeEncodeError 从哪来
开发语言·字符编码·windows·python·定时任务
隔窗听雨眠9 小时前
PostgreSQL单表从Windows迁移到Linux:差异剖析、方案对比与全流程实战
linux·windows·postgresql
Helix25012 小时前
Ansible混合环境自动化:Windows与Linux统一配置管理实战
windows·自动化·ansible·playbook·配置管理·winrm·混合环境
Java开发追求者14 小时前
windows快速安装docker
windows·docker·安装·1024程序员节
Helix25017 小时前
Windows ETW与KQL实战:终端性能诊断与遥测数据分析指南
windows·性能诊断·kql·etw·azure monitor·遥测数据·tracert
陈葛杰18 小时前
Adobe Premiere Pro2025安装教程
windows·adobe·开源软件·1024程序员节
承渊政道20 小时前
iOS远程控制电脑用什么好?iPhoneiPad远程控制Windows电脑最佳方案2026横评
windows·ios·远程控制·1024程序员节·iphone ipad
易点云徐源20 小时前
PDF 默认打开方式刚修好,过一分钟又变成“未知应用”?使用 ProcMon 成功抓出后台程序
windows·pdf
我是大猴子20 小时前
py how claude work项目分析
运维·服务器·windows·1024程序员节
软件工程师文艺1 天前
AI 编程新范式:Spec Kit 的规格驱动开发到底在解决什么
人工智能·驱动开发