用于设置服务的蓝牙和 WSAQUERYSET
蓝牙使用 WSAQUERYSET 结构,以便发现蓝牙命名空间中的设备和服务,NS_BTH。
WSASetService 函数使用 WSAQUERYSET 结构在蓝牙命名空间中注册或删除服务实例。 下表列出了 WSAQUERYSET 结构中的成员值。
成员 | 必需值(输入) | 输出 |
---|---|---|
dwSize | 必须设置为 sizeof(WSAQUERYSET)。 用作版本控制机制。 | 没有。 |
dwOutputFlags | 未使用。 | 没有。 |
lpszServiceInstanceName | 可选,但建议使用。 用于构造蓝牙 ServiceName 属性。 | 没有。 |
lpServiceClassId | 必填。 对应于服务类的 GUID。 此值应对应于已知配置文件的蓝牙分配号码文档中的 GUID,或针对不基于配置文件的应用程序生成的唯一应用程序生成的 UUID。 用于构造 ServiceClassIdList 属性序列,并将其作为其唯一成员。 | 没有。 |
lpVersion | 未使用。 | 没有。 |
lpszComment | 自选。 用于构造蓝牙 ServiceDescription 属性。 | 没有。 |
dwNameSpace | 要在其中约束服务的命名空间。 必须NS_BTH。 | 没有。 |
lpNSProviderId | 不需要。 | 没有。 |
lpszContext | 未使用。 | 没有。 |
dwNumberOfProtocols | 未使用。 | 没有。 |
lpafpProtocols | 未使用。 | 没有。 |
lpszQueryString | 未使用。 | 没有。 |
dwNumberOfCsAddrs | 要注册的地址数。 必须为 1。 | 没有。 |
lpcsaBuffer | 如果未使用原始 SDP 流填充 lpBlob,则为必需。 指向 CSADDR_INFO 结构的指针,其 LocalAddr.lpSockaddr 成员指向服务器侦听连接的 SOCKADDR_BTH。 getsockname 函数可用于返回绑定套接字的 SOCKADDR_BTH 结构。 系统使用 lpcsaBuffer 成员中的信息来构造蓝牙 ProtocolDescriptorList SDP 属性。 lpcsaBuffer 中提供的协议和端口必须是唯一的(以前未注册的),并且用于为记录编制索引,以便后续调用删除。 用于构造 SDP 记录的蓝牙 ProtocolDescriptorList 属性。 | 没有。 |
lpBlob | 自选。 指向指向 BTH_SET_SERVICE 结构的 BLOB 结构的指针,使客户端能够提供包含应用程序构造的二进制 SDP 记录的特定于蓝牙的结构。 如果向 WSASetService 函数提供了 lpBlob,则除 dwSize dwSize 和 dwNameSpace 之外,WSAQUERYSET 结构的所有其他成员都会被忽略。 有关详细信息,请参阅 蓝牙和 BLOB。 在许多情况下,提交二进制 SDP 记录是必需的,因为可以从 WSAQUERYSET 结构转换有限数量的 SDP 属性,字符串仅转换为默认语言 UTF-8 编码。 | 如果在输入上提供了可选的 BLOB 和 BTH_SET_SERVICE 结构,以及必须由 BTH_SET_SERVICE指向的 ULONG 版本和 HANDLE 值,则更新版本以包含蓝牙 Windows 套接字提供程序的BTH_SDP_VERSION值, 并提供了句柄,这是随后删除记录所必需的。 |
注意
若要删除服务,BTH_SET_SERVICE 结构中唯一必需的成员是 pSdpVersion,pRecordHandle 成员。
相关主题