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。

相关推荐
神一样的老师7 小时前
【兆易创新GD32VW553开发板试用】红外遥控接入天气时钟实战
驱动开发·单片机·嵌入式硬件
love530love9 小时前
精简版|Claude-HUD 插件介绍 + 一键安装教程
人工智能·windows·笔记
秋910 小时前
MySQL 8.0.46 全平台安装与配置详解(Windows/Linux/macOS)
linux·windows·mysql
善恶怪客10 小时前
LocalSend基本使用
windows
MengMeng_102311 小时前
win10 蓝牙连接音响没有声音设备选项
windows
强殖装甲凯普12 小时前
处理Windows没有msi的默认打开方式
windows·安装·msi
mOok ONSC12 小时前
mysql9.0windows安装
windows·adb
charlie11451419113 小时前
嵌入式Linux驱动开发——新字符设备驱动 API 概览
linux·运维·驱动开发
T0uken14 小时前
基于 vcpkg 与 LLVM-MinGW 的 Qt6 静态链接开发方案
c++·windows·qt
无心水14 小时前
【Hermes:Skill系统深度】21、Skill 调试与冲突解决:为什么没触发?怎么修复? —— Honcho 智能体排障完全手册
人工智能·windows·openclaw·养龙虾·hermes·养马·honcho