WSCEnumNameSpaceProvidersEx32 函数 (ws2spi.h)

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

语法

INT WSAAPI WSCEnumNameSpaceProvidersEx32(
  [in, out] LPDWORD                lpdwBufferLength,
  [out]     LPWSANAMESPACE_INFOEXW lpnspBuffer
);

参数

[in, out] lpdwBufferLength

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

[out] lpnspBuffer

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

返回值

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

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

注解

WSCEnumNameSpaceProvidersEx32WSAEnumNameSpaceProvidersEx 的严格 32 位版本。 在 64 位计算机上,所有不是专门 32 位 (调用,例如,所有不以“32”结尾的函数 ) 本机 64 位目录上运行。 在 64 位计算机上执行的进程必须使用特定的 32 位函数调用,才能在严格的 32 位目录上运行并保持兼容性。 特定 32 位调用的定义和语义与其本机调用相同。

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

32 位 SPI 函数等效于 WSAEnumNameSpaceProvidersEx) (本机 API 函数,因为没有“隐藏”命名空间提供程序的概念。

可以使用 WSCEnumNameSpaceProvidersEx32 函数查询与在 lpProviderInfo 参数中传递到 WSCInstallNameSpaceEx32 函数的命名空间条目关联的提供程序特定数据 Blob。

要求

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

另请参阅

NAPI_PROVIDER_INSTALLATION_BLOB

WSAEnumNameSpaceProvidersEx

WSANAMESPACE_INFOEXW

WSCEnumNameSpaceProviders32

WSCInstallNameSpaceEx32