用于设备查询的蓝牙和 WSALookupServiceBegin

本主题介绍如何使用 WSALookupServiceBegin 函数对可见和虚影设备进行查询。 有关详细信息,请参阅发现蓝牙设备和服务

WSALookupServiceBegin 函数在其第一个参数 lpqsRestrictions 中使用 WSAQUERYSET 结构来定义搜索条件。 蓝牙为 WSALookupServiceBegin 函数和 WSAQUERYSET 提供了具体的使用指南。

下表列出了适用于查询设备时传递给 lpqsRestrictions 参数的 WSAQUERYSET 结构的限制。

WSAQUERYSET 成员 限制
dwSize 设置为 sizeof(WSAQUERYSET)。
lpBlob 该成员包含一个指向 BLOB 结构的可选指针。 如果指定了该成员,LUP_FLUSHCACHE 的有效设备查询参数如下:
  • BLOB 结构的 cbSize 成员必须是 sizeof(BTH_QUERY_DEVICE)。
  • pBlobData 成员是指向 BTH_QUERY_DEVICE 结构的指针,其中 LAP 成员是蓝牙查询访问代码,而 length 成员是查询长度(以秒为单位)。
dwNameSpace 设置为 NS_BTH
其他成员 WSAQUERYSET 结构的其他成员都将被忽略。

 

下表中列出的标志用于 dwControlFlags 参数以控制查询结果。 LUP_CONTAINERSLUP_FLUSHCACHE 标志用于 WSALookupServiceBegin 函数;其余标志用于调用 WSALookupServiceNext 函数。

标记 Result
LUP_CONTAINERS 指定查询目的是获取蓝牙设备列表,而不是服务列表。 必须设置此标志。
LUP_FLUSHCACHE 触发对本地设备的查询,或返回以前查询的缓存结果。
LUP_RETURN_TYPE 直接在 WSAQUERYSET 结构的 lpServiceClassId 成员中返回蓝牙 COD(设备位类)。 COD 映射到 GUID 的 Data1 成员。
LUP_RES_SERVICE 返回本地蓝牙地址的信息。 只有还指定了 LUP_RETURN_ADDR 时,此标志才有效。
LUP_RETURN_NAME 每次调用 WSALookupServiceNext 函数时,都会返回 WSAQUERYSET 结构的 lpszServiceInstanceName 成员中的设备显示名称。 在指定 LUP_RETURN_BLOB 标志时,还必须指定该标志才能检索 BTH_DEVICE_INFO 结构的 name 成员。
LUP_RETURN_ADDR 每次调用 WSALookupServiceNext 函数时,都会返回一个 SOCKADDR_BTH 结构,其中包含 lpcsaBuffer 成员 WSAQUERYSET 结构中对等设备的 48 位地址。 SOCKADDR_BTH 结构中的其他成员将为空。
LUP_RETURN_BLOB 在以后每次调用 WSALookupServiceNext 时,返回 BTH_DEVICE_INFO 结构。
LUP_FLUSHPREVIOUS 跳过下一个可用设备,并返回其后的设备。

 

用于服务发现的蓝牙和 WSALookupServiceBegin

蓝牙和 WSALookupServiceNext

用于设备查询的蓝牙和 WSAQUERYSET

发现蓝牙设备和服务

WSALookupServiceBegin

WSALookupServiceNext

WSALookupServiceEnd

BLOB

BTH_QUERY_DEVICE

SOCKADDR_BTH

WSAQUERYSET

Windows 套接字