IOCTL_BTH_GET_DEVICE_INFO IOCTL (bthioctl.h)

IOCTL_BTH_GET_DEVICE_INFO请求返回有关所有缓存的、以前发现的已启用蓝牙的远程无线电的信息。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

AssociatedIrp.SystemBuffer 成员指向BTH_DEVICE_INFO_LIST结构的缓冲区。

输入缓冲区长度

BTH_DEVICE_INFO_LIST结构的长度

输出缓冲区

AssociatedIrp.SystemBuffer 成员指向保存BTH_DEVICE_INFO_LIST结构的缓冲区。 BTH_DEVICE_INFO_LIST 结构的 numOfDevices 成员包含有信息的设备数和 BTH_DEVICE_INFO 结构的数组;每个设备的一个数组条目。

输出缓冲区长度

如果传递的输出缓冲区的大小不完全 sizeof(BTH_DEVICE_INFO_LIST) 加上 的正确倍数 sizeof(BTH_DEVICE_INFO),则请求将失败并STATUS_INVALID_BUFFER_SIZE。

状态块

如果请求成功,STATUS_BLOCK结构的 Information 成员将设置为保存设备数组相关信息的缓冲区的大小(以字节为单位)。 BTH_DEVICE_INFO_LIST 结构包含第一个BTH_DEVICE_INFO结构的存储,因此,如果未返回任何设备, 则信息 成员将设置为第一个结构的大小。

Status 成员设置为下表中的值之一。

状态值 说明
STATUS_SUCCESS IOCTL 已成功完成。
STATUS_INVALID_PARAMETER 传入的输入缓冲区为 NULL
STATUS_INVALID_BUFFER_SIZE 输出缓冲区大小不正确。

注解

IOCTL_BTH_GET_DEVICE_INFO IOCTL 提供有关以前发现的所有远程无线电的信息。

BTH_DEVICE_INFO_LIST 结构的 numOfDevices 成员返回 IOCTL 返回的BTH_DEVICE_INFO结构的总数。 如果调用驱动程序传入的缓冲区小于 numOfDevices 成员的值,则仅返回一部分可用结构。 蓝牙驱动程序开发人员应先调用具有较小缓冲区的IOCTL_BTH_GET_DEVICE_INFO,例如 sizeof(BTH_DEVICE_INFO_LIST),然后使用返回的 numOfDevices 成员为后续调用正确调整缓冲区大小。

BTH_DEVICE_INFO_LIST 结构包括第一个BTH_DEVICE_INFO结构的存储。 使用以下公式计算调用IOCTL_BTH_GET_DEVICE_INFO的正确缓冲区大小: Buffer=sizeof(BTH_DEVICE_INFO_LIST)+(NumOfDevices-1)*sizeof(BTH_DEVICE_INFO)

要求

要求
最低受支持的客户端 版本:Windows Vista 及更高版本中的 _Supported。
标头 bthioctl.h (包括 Bthioctl.h)
IRQL <= PASSIVE_LEVEL

另请参阅

BTH_DEVICE_INFO

BTH_DEVICE_INFO_LIST