WSCEnumNameSpaceProviders32 函数 (ws2spi.h)

WSCEnumNameSpaceProviders32 函数返回有关可用 32 位命名空间提供程序的信息。

注意 此调用是 WSAEnumNameSpaceProviders 的严格 32 位版本,用于 64 位平台。 提供它以允许 64 位进程访问 32 位目录。

 

语法

INT WSAAPI WSCEnumNameSpaceProviders32(
  [in, out] LPDWORD              lpdwBufferLength,
  [out]     LPWSANAMESPACE_INFOW lpnspBuffer
);

参数

[in, out] lpdwBufferLength

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

[out] lpnspBuffer

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

返回值

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

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

注解

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

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

WSCEnumNameSpaceProviders32 函数是仅限 Unicode 的函数,返回WSANAMESPACE_INFOEXW结构。

要求

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

另请参阅

WSAEnumNameSpaceProviders

WSANAMESPACE_INFOW

WSCInstallNameSpace32

WSCInstallNameSpaceEx32