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。

相关推荐
余衫马2 小时前
ESP32-S3 实战指南:BOOT-KEY 按键驱动开发全解析
驱动开发·单片机·嵌入式硬件
菜鸟单飞3 小时前
介绍一款非常实用的PDF阅读软件!
windows·pdf·电脑
流星白龙8 小时前
【Linux】35.封装 UdpSocket(2)
linux·运维·windows
waicsdn_haha8 小时前
Visual Studio Code 2025 安装与高效配置教程
c语言·ide·windows·vscode·微软·编辑器·win7
ChoSeitaku10 小时前
12.重复内容去重|添加日志|部署服务到Linux上(C++)
linux·c++·windows
Major_xx10 小时前
装win10系统提示“windows无法安装到这个磁盘,选中的磁盘采用GPT分区形式”解决方法
windows·gpt
CoderIsArt10 小时前
Windows图形开发库Kernel32,OpenGL32,Glu32,Gdi32与User32
windows
伪装成塔的小兵10 小时前
Windows使用docker部署fastgpt出现的一些问题
windows·docker·容器·oneapi·fastgpt
开开心心就好11 小时前
娱乐使用,可以生成转账、图片、聊天等对话内容
windows·python·智能手机·软件工程·娱乐·软件需求
~kiss~13 小时前
python的thrift2pyi学习
windows·python·学习