IOCTL_BTH_SDP_ATTRIBUTE_SEARCH IOCTL (bthioctl.h)

IOCTL_BTH_SDP_ATTRIBUTE_SEARCH请求获取指定 SDP 记录的属性。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

AssociatedIrp.SystemBuffer 成员包含 a BTH_SDP_ATTRIBUTE_SEARCH_REQUEST 结构,用于指定要搜索的属性的远程计算机范围和其他键成员。

输入缓冲区长度

a 的长度 BTH_SDP_ATTRIBUTE_SEARCH_REQUEST 结构。

输出缓冲区

AssociatedIrp.SystemBuffer 成员指向一个缓冲区,该缓冲区包含一个 BTH_SDP_STREAM_RESPONSE 结构,后跟可变长度的原始 SDP 流。

输出缓冲区长度

BTH_SDP_STREAM_RESPONSE 结构的长度。

状态块

如果请求成功,STATUS_BLOCK结构的 信息 成员将设置为 BTH_SDP_STREAM_RESPONSE 的大小或输出缓冲区的大小(以较小者为准)。 否则,信息 成员设置为零。

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

状态值 描述
STATUS_SUCCESS IOCTL 已成功完成。
STATUS_DEVICE_NOT_CONNECTED SDP 服务所在的设备未连接。
STATUS_INSUFFICIENT_RESOURCES 没有足够的内存来完成此作。
STATUS_INVALID_BUFFER_SIZE 输出缓冲区大小不正确。
STATUS_INVALID_PARAMETER 输入缓冲区中的值之一无效。
STATUS_REQUEST_NOT_ACCEPTED SDP 服务拒绝了请求。
STATUS_TOO_MANY_GUIDS_REQUESTED SDP 服务无法处理在输入缓冲区中传递的 GUID 数。

言论

在大多数情况下,配置文件驱动程序可以通过调用 来合并 SDP 服务和属性搜索 IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH IOCTL。 如果配置文件驱动程序必须减少通过蓝牙链接传输的 SDP 流量量,或者使用少量消息传输单元(MTU)从 SDP 服务器提取信息,则配置文件驱动程序应调用 IOCTL_BTH_SDP_SERVICE_SEARCH IOCTL 来执行服务搜索。 然后,配置文件驱动程序应调用 IOCTL_BTH_SDP_ATTRIBUTE_SEARCH IOCTL 来执行属性搜索。

输出缓冲区中返回的BTH_SDP_STREAM_RESPONSE结构包含有关整个 SDP 记录的大小、原始 SDP 记录流的大小(以字节为单位)的信息,该流之后BTH_SDP_STREAM_RESPONSE结构以及该流的第一个字节。 可变长度流是搜索返回的 SDP 记录属性。

要求

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

另请参阅

BTH_SDP_ATTRIBUTE_SEARCH_REQUEST

BTH_SDP_STREAM_RESPONSE

IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH

IOCTL_BTH_SDP_SERVICE_SEARCH