用于设备查询的蓝牙和 WSALookupServiceBegin
本主题介绍如何使用 WSALookupServiceBegin 函数对可见和虚影设备进行查询。 有关详细信息,请参阅发现蓝牙设备和服务。
WSALookupServiceBegin 函数在其第一个参数 lpqsRestrictions 中使用 WSAQUERYSET 结构来定义搜索条件。 蓝牙为 WSALookupServiceBegin 函数和 WSAQUERYSET 提供了具体的使用指南。
下表列出了适用于查询设备时传递给 lpqsRestrictions 参数的 WSAQUERYSET 结构的限制。
WSAQUERYSET 成员 | 限制 |
---|---|
dwSize | 设置为 sizeof(WSAQUERYSET)。 |
lpBlob | 该成员包含一个指向 BLOB 结构的可选指针。 如果指定了该成员,LUP_FLUSHCACHE 的有效设备查询参数如下:
|
dwNameSpace | 设置为 NS_BTH。 |
其他成员 | WSAQUERYSET 结构的其他成员都将被忽略。 |
下表中列出的标志用于 dwControlFlags 参数以控制查询结果。 LUP_CONTAINERS 和 LUP_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 | 跳过下一个可用设备,并返回其后的设备。 |
相关主题
-
BLOB