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结构 信息 成员设置为包含设备数组信息的缓冲区的大小(以字节为单位)。 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 成员的值,则仅返回可用结构的一部分。 蓝牙驱动程序开发人员应首先使用小型缓冲区(例如 sizeof(BTH_DEVICE_INFO_LIST))调用IOCTL_BTH_GET_DEVICE_INFO,然后使用返回的 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