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来检索特定的错误号。
错误代码 | 意义 |
---|---|
lpnspBuffer 参数是 NULL 指针或缓冲区长度(lpdwBufferLength)太小,无法接收所有相关 WSANAMESPACE_INFOEX 结构和相关信息。 返回此错误后,lpdwBufferLength 参数中返回所需的缓冲区长度。 | |
尚未初始化WS2_32.DLL。 在调用任何 Windows 套接字函数之前,应用程序必须先调用 WSAStartup。 | |
内存不足,无法执行操作。 |
言论
WSAEnumNameSpaceProvidersEx 函数是 WSAEnumNameSpaceProviders 函数的增强版本。 可以使用 WSAEnumNameSpaceProvidersEx 函数查询与 lpProviderInfo 参数中传递给 WSCInstallNameSpaceEx 函数的命名空间条目关联的提供程序特定的数据 blob。
目前,在 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.1 和 Windows 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 应用] |
目标平台 | 窗户 |
标头 | winsock2.h |
库 | Ws2_32.lib |
DLL | Ws2_32.dll |