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结构的 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 |