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 结构的大小(以字节为单位)。 此成员用作版本控制机制,因为 WSAQUERYSET 结构的大小在更高版本的 Windows 上已更改。
lpszServiceInstanceName
类型: LPTSTR
指向包含服务名称的以 NULL 结尾的可选字符串的指针。 未定义字符串中使用通配符的语义,但某些命名空间提供程序可以支持。
lpServiceClassId
类型: LPGUID
与服务类对应的 GUID。 需要设置此成员。
lpVersion
类型: LPWSAVERSION
指向命名空间提供程序的可选所需版本号的指针。 此成员提供版本比较语义 (,即请求的版本必须完全匹配,或者版本必须不小于) 提供的值。
lpszComment
类型: LPTSTR
对于查询,将忽略此成员。
dwNameSpace
类型:DWORD
一个命名空间标识符,用于确定要查询的命名空间提供程序。 传递特定的命名空间标识符将导致仅查询支持指定命名空间的命名空间提供程序。 指定 NS_ALL 将导致查询所有已安装的和活动命名空间提供程序。
dwNameSpace 成员的选项在 Winsock2.h include 文件中列出。 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 体系结构的一部分。 较新版本 2 的命名空间体系结构在 Windows Vista 及更高版本上可用。
在大多数情况下,仅对特定传输协议感兴趣的应用程序应按地址系列和协议而不是命名空间来限制其查询。 这将允许需要查找 TCP/IP 服务的应用程序(例如,让所有可用命名空间(如本地主机文件、DNS 和 NIS)处理其查询。
注意
winsock2.h 标头将 WSAQUERYSET 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | winsock2.h |