蓝牙和 WSALookupServiceBegin 进行设备查询
本主题介绍如何使用 WSALookupServiceBegin 函数对可见和虚影设备执行查询。 有关详细信息,请参阅 发现蓝牙设备和服务。
WSALookupServiceBegin 函数在其第一个参数(lpqsRestrictions)中使用 WSAQUERYSET 结构来定义搜索条件。 蓝牙提供了使用 WSALookupServiceBegin 函数和 WSAQUERYSET的具体准则。
下表列出了在查询设备时传递给 lpqsRestrictions 参数的 WSAQUERYSET 结构的限制。
WSAQUERYSET 成员 | 限制 |
---|---|
dwSize | 设置为 sizeof(WSAQUERYSET)。 |
lpBlob | 此成员包含指向 BLOB 结构的可选指针。 如果指定了此成员,则 LUP_FLUSHCACHE 的有效设备查询参数如下所示:
|
dwNameSpace | 设置为 NS_BTH。 |
其他成员 | 将忽略 WSAQUERYSET 结构的其他成员。 |
下表中列出的标志用于 dwControlFlags 参数来控制查询结果。 WSALookupServiceBegin 函数使用 LUP_CONTAINERS 和 LUP_FLUSHCACHE 标志;其余标志用于调用 WSALookupServiceNext 函数。
旗 | 结果 |
---|---|
LUP_CONTAINERS | 指定查询的目的是获取蓝牙设备列表,而不是服务列表。 必须设置此标志。 |
LUP_FLUSHCACHE | 触发对本地设备的查询或导致返回先前查询的缓存结果。 |
LUP_RETURN_TYPE | 直接在 lpServiceClassIdWSAQUERYSET 结构的成员中返回蓝牙 COD(设备位类)。 COD 映射到 GUID 的 Data1 成员。 |
LUP_RES_SERVICE | 返回本地蓝牙地址的信息。 仅当同时指定 LUP_RETURN_ADDR 时,此标志才有效。 |
LUP_RETURN_NAME | 返回 lpszServiceInstanceNameWSAQUERYSET 结构中设备的显示名称,以便每次调用 WSALookupServiceNext 函数。 还必须指定此标志,以在指定 LUP_RETURN_BLOB 标志时检索 BTH_DEVICE_INFO 结构 成员 名称。 |
LUP_RETURN_ADDR | 返回一个 SOCKADDR_BTH 结构,该结构包含 lpcsaBufferWSAQUERYSET 结构中对等方的 48 位地址,以便每次调用 WSALookupServiceNext 函数。 SOCKADDR_BTH 结构中的其他成员将为空。 |
LUP_RETURN_BLOB | 在每个后续调用 WSALookupServiceNext时返回 BTH_DEVICE_INFO 结构。 |
LUP_FLUSHPREVIOUS | 跳过下一个可用设备,并返回其后面的设备。 |
相关主题