WSAQUERYSETW 结构 (winsock2.h)
WSAQUERYSET 结构提供有关给定服务的相关信息,包括服务类 ID、服务名称、适用的命名空间标识符和协议信息,以及服务侦听的一组传输地址。
语法
typedef struct _WSAQuerySetW {
DWORD dwSize;
LPWSTR lpszServiceInstanceName;
LPGUID lpServiceClassId;
LPWSAVERSION lpVersion;
LPWSTR lpszComment;
DWORD dwNameSpace;
LPGUID lpNSProviderId;
LPWSTR lpszContext;
DWORD dwNumberOfProtocols;
LPAFPROTOCOLS lpafpProtocols;
LPWSTR lpszQueryString;
DWORD dwNumberOfCsAddrs;
LPCSADDR_INFO lpcsaBuffer;
DWORD dwOutputFlags;
LPBLOB lpBlob;
} WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW;
成员
dwSize
类型:DWORD
WSAQUERYSET 结构的大小(以字节为单位)。 此成员用作版本控制机制,因为更高版本的 Windows 上已更改了 WSAQUERYSET 结构的大小。
lpszServiceInstanceName
类型:LPTSTR
指向包含服务名称的可选 NULL 终止字符串的指针。 未定义在字符串中使用通配符的语义,但某些命名空间提供程序可以支持。
lpServiceClassId
类型:LPGUID
对应于服务类的 GUID。 必须设置此成员。
lpVersion
类型:LPWSAVERSION
指向命名空间提供程序的可选所需版本号的指针。 此成员提供版本比较语义(即请求的版本必须完全匹配,或者版本必须不小于提供的值)。
lpszComment
类型:LPTSTR
对于查询,将忽略此成员。
dwNameSpace
类型:DWORD
一个命名空间标识符,用于确定要查询哪些命名空间提供程序。 传递特定命名空间标识符将只生成支持所查询的指定命名空间的命名空间提供程序。 指定 NS_ALL 将导致查询所有已安装的命名空间提供程序和活动命名空间提供程序。
dwNameSpace 成员的选项列在 Winsock2.h 包含文件中。 Windows Vista 及更高版本随附了多个新的命名空间提供程序。 可以安装其他命名空间提供程序,因此,以下可能的值只是那些常用的值。 其他许多值是可能的。
lpNSProviderId
类型:LPGUID
指向特定命名空间提供程序的可选 GUID 的指针,用于在单个命名空间(如 NS_DNS)下注册多个命名空间提供程序。 传递特定命名空间提供程序的 GUID 只会查询指定的命名空间提供程序。 可以调用 WSAEnumNameSpaceProviders 和 WSAEnumNameSpaceProvidersEx 函数来检索命名空间提供程序的 GUID。
lpszContext
类型:LPTSTR
指向分层命名空间中查询的可选起点的指针。
dwNumberOfProtocols
类型:DWORD
协议约束数组的大小(以字节为单位)。 此成员可以为零。
lpafpProtocols
类型:LPAFPROTOCOLS
指向 AFPROTOCOLS 结构的可选数组的指针。 仅返回使用这些协议的服务。
lpszQueryString
类型:LPTSTR
指向可选的以 NULL 结尾的查询字符串的指针。 某些命名空间(如 Whois++)支持简单文本字符串中包含的扩充的类似 SQL 的查询。 此参数用于指定该字符串。
dwNumberOfCsAddrs
类型:DWORD
对于查询,将忽略此成员。
lpcsaBuffer
类型:LPCSADDR_INFO
对于查询,将忽略此成员。
dwOutputFlags
类型:DWORD
对于查询,将忽略此成员。
lpBlob
类型:LPBLOB
指向用于查询或设置提供程序特定命名空间信息的数据的可选指针。 此信息的格式特定于命名空间提供程序。
言论
WSAQUERYSET 结构用作 Windows 95 及更高版本上提供的原始命名空间提供程序版本 1 体系结构的一部分。 较新版本的命名空间体系结构在 Windows Vista 及更高版本上可用。
在大多数情况下,仅对特定传输协议感兴趣的应用程序应按地址系列和协议(而不是命名空间)限制其查询。 这将允许需要查找 TCP/IP 服务的应用程序,例如,让其查询由所有可用命名空间(如本地主机文件、DNS 和 NIS)进行处理。
注意
winsock2.h 标头将 WSAQUERYSET 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | winsock2.h |
另请参阅
用于设置服务 的蓝牙和 WSAQUERYSET