IOCTL_BTH_GET_DEVICE_INFO IOCTL (bthioctl.h)
IOCTL_BTH_GET_DEVICE_INFO请求返回有关所有缓存的、以前发现的已启用蓝牙的远程无线电的信息。
主要代码
输入缓冲区
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 |