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 及更高版本包含多个新的命名空间提供程序。 可以安装其他命名空间提供程序,因此以下可能的值仅是通常可用的值。 许多其他值是可能的。

含义
NS_ALL
所有已安装的和活动命名空间。
NS_BTH
蓝牙命名空间。 Windows Vista 及更高版本支持此命名空间标识符。
NS_DNS
域名系统 (DNS) 命名空间。
NS_EMAIL
电子邮件命名空间。 Windows Vista 及更高版本支持此命名空间标识符。
NS_NLA
网络位置感知 (NLA) 命名空间。 Windows XP 及更高版本支持此命名空间标识符。
NS_PNRPNAME
特定对等名称的对等名称空间。 Windows Vista 及更高版本支持此命名空间标识符。
NS_PNRPCLOUD
对等名称集合的对等名称空间。 Windows Vista 及更高版本支持此命名空间标识符。

lpNSProviderId

类型: LPGUID

指向特定命名空间提供程序的可选 GUID 的指针,用于在单个命名空间(如 NS_DNS)下注册多个命名空间提供程序时进行查询。 传递特定命名空间提供程序的 GUID 将只查询指定的命名空间提供程序。 可以调用 WSAEnumNameSpaceProvidersWSAEnumNameSpaceProvidersEx 函数来检索命名空间提供程序的 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

另请参阅

用于设备查询的蓝牙和 WSAQUERYSET

用于服务查询的蓝牙和 WSAQUERYSET

用于设置服务的蓝牙和 WSAQUERYSET

WSAEnumNameSpaceProviders

WSAEnumNameSpaceProvidersEx

WSALookupServiceBegin

WSALookupServiceNext

WSAQUERYSET2

WSASetService