WSCInstallNameSpace32 函数 (ws2spi.h)
WSCInstallNameSpace32 函数安装指定的 32 位命名空间提供程序。 对于能够支持多个命名空间的提供程序,必须为支持的每个命名空间调用此函数,并且每次都必须提供唯一的提供程序标识符。
语法
INT WSCInstallNameSpace32(
[in] LPWSTR lpszIdentifier,
[in] LPWSTR lpszPathName,
[in] DWORD dwNameSpace,
[in] DWORD dwVersion,
[in] LPGUID lpProviderId
);
参数
[in] lpszIdentifier
指向字符串的指针,该字符串标识与 lpProviderId 参数中传递的全局唯一标识符 (GUID) 关联的提供程序。
[in] lpszPathName
指向包含提供程序 DLL 图像路径的字符串的指针。 字符串遵循路径解析的常用规则:此路径可以包含嵌入的环境字符串 (,如 %SystemRoot%) 。 每当 WS2_32.DLL 随后必须代表应用程序加载提供程序 DLL 时,都会扩展此类环境字符串。 展开任何嵌入的环境字符串后,Ws2_32.dll 将生成的字符串传递到 LoadLibrary 函数,以将提供程序加载到内存中。 有关详细信息,请参阅 LoadLibrary。
[in] dwNameSpace
一个描述符,指定此提供程序支持的命名空间。
[in] dwVersion
指定提供程序的版本号的描述符。
[in] lpProviderId
此提供程序的唯一标识符。 此 GUID 应由 Uuidgen.exe 生成。
返回值
如果未发生错误, WSCInstallNameSpace32 函数将返回零NO_ERROR () 。 否则,如果函数失败,它将返回SOCKET_ERROR,并且必须使用 WSAGetLastError 函数检索相应的错误代码。
错误代码 | 含义 |
---|---|
调用例程没有足够的权限来安装命名空间。 | |
一个或多个参数无效。 | |
发生不可恢复的错误。 此错误在以下几种情况下返回:提供程序已安装、用户缺少写入 Winsock 注册表所需的管理权限,或者在创建或安装目录条目时失败。 | |
不应失败的系统调用失败。 | |
可用内存不足。 如果内存不足,无法分配新的目录条目,则返回此错误。 |
注解
WSCInstallNameSpace32 是 WSCInstallNameSpace 的严格 32 位版本。 例如,在 64 位计算机上,所有不专门调用 32 位 (所有不以“32”结尾的函数 ) 本机 64 位目录上运行。 在 64 位计算机上执行的进程必须使用特定的 32 位函数调用,才能对严格的 32 位目录进行操作并保持兼容性。 特定 32 位调用的定义和语义与其本机调用的定义和语义相同。
命名空间配置函数不会影响已运行的应用程序。 新安装的命名空间提供程序对应用程序不可见,命名空间提供程序的激活状态也将不可见。 调用 WSCInstallNameSpace32 后启动的应用程序将识别这些更改。
WSCInstallNameSpace32 函数只能由以 Administrators 组成员身份登录的用户调用。 如果 WSCInstallNameSpace32 由不是 Administrators 组成员的用户调用,则函数调用将失败。 对于运行 Windows Vista 或 Windows Server 2008 的计算机,此函数也可能因为用户帐户控制 (UAC) 而失败。 如果包含此函数的应用程序由以管理员组成员身份登录(而不是内置管理员)的用户执行,则此调用将失败,除非应用程序已在清单文件中标记为 requestedExecutionLevel 设置为 requireAdministrator。 如果 Windows Vista 或 Windows Server 2008 上的应用程序缺少此清单文件,则作为管理员组成员(而不是内置管理员)登录的用户必须在增强的 shell 中执行应用程序,因为内置管理员 (RunAs 管理员) 才能使此功能成功。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 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 |