WSAEnumNameSpaceProvidersExA 函数 (winsock2.h)

WSAEnumNameSpaceProvidersEx 函数检索有关可用命名空间提供程序的信息。

语法

INT WSAAPI WSAEnumNameSpaceProvidersExA(
  [in, out] LPDWORD                lpdwBufferLength,
  [out]     LPWSANAMESPACE_INFOEXA lpnspBuffer
);

参数

[in, out] lpdwBufferLength

输入时, lpnspBuffer 指向的缓冲区中包含的字节数。 在输出 (,如果函数失败,并且错误为 WSAEFAULT) ,则为 lpnspBuffer 缓冲区分配的最小字节数,以允许它检索所有请求的信息。 传递给 WSAEnumNameSpaceProvidersEx 的缓冲区必须足以保存所有命名空间信息。

[out] lpnspBuffer

填充 WSANAMESPACE_INFOEX结构的缓冲区 。 返回的结构连续位于缓冲区的顶部。 结构中的指针引用的可变大小信息指向位于固定大小结构末尾和缓冲区末尾之间的缓冲区内的位置。 填充的结构数是 WSAEnumNameSpaceProvidersEx 的返回值。

返回值

WSAEnumNameSpaceProvidersEx 函数返回复制到 lpnspBuffer中的WSANAMESPACE_INFOEX结构的数目。 否则,将返回值SOCKET_ERROR,并且可以通过调用 WSAGetLastError 检索特定的错误号。

错误代码 含义
WSAEFAULT
lpnspBuffer 参数是 NULL 指针,或者缓冲区长度 lpdwBufferLength 太小,无法接收所有相关WSANAMESPACE_INFOEX结构和相关信息。 当返回此错误时,所需的缓冲区长度将在 lpdwBufferLength 参数中返回。
WSANOTINITIALIZED
尚未初始化 WS2_32.DLL。 应用程序必须先调用 WSAStartup, 然后才能调用任何 Windows 套接字函数。
WSA_NOT_ENOUGH_MEMORY
内存不足,无法执行操作。

注解

WSAEnumNameSpaceProvidersEx 函数是 WSAEnumNameSpaceProviders 函数的增强版本。 可以使用 WSAEnumNameSpaceProvidersEx 函数查询与 lpProviderInfo 参数中传递给 WSCInstallNameSpaceEx 函数的命名空间条目关联的提供程序特定数据 Blob。

目前,Windows 附带的唯一在WSANAMESPACE_INFOEX结构的 ProviderSpecific 成员中设置信息的命名空间提供程序是NS_EMAIL提供程序。 NS_EMAIL命名空间提供程序的 ProviderSpecific 成员的格式是 NAPI_PROVIDER_INSTALLATION_BLOB 结构。

定义 UNICODE 或 _UNICODE 时, WSAEnumNameSpaceProvidersEx 将定义为 WSAEnumNameSpaceProvidersExW(此函数的 Unicode 版本)。 lpnspBuffer 参数定义为LPSAWSANAMESPACE_INFOEXW数据类型,并在成功时返回WSANAMESPACE_INFOEXW结构。

如果未定义 UNICODE 或 _UNICODE, 则 WSAEnumNameSpaceProvidersEx 将定义为 WSAEnumNameSpaceProvidersExA(此函数的 ANSI 版本)。 lpnspBuffer 参数定义为LPSAWSANAMESPACE_INFOEXA数据类型,并在成功时返回WSANAMESPACE_INFOEXA结构。

Windows 8.1Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 及更高版本的 Windows 应用商店应用支持 WSAEnumNameSpaceProvidersExW 函数。

注意

winsock2.h 标头将 WSAEnumNameSpaceProvidersEx 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 8.1,Windows Vista [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 winsock2.h
Library Ws2_32.lib
DLL Ws2_32.dll

另请参阅

NAPI_PROVIDER_INSTALLATION_BLOB

WSAEnumNameSpaceProviders

WSANAMESPACE_INFOEX

WSCEnumNameSpaceProvidersEx32

WSCInstallNameSpaceEx32