WSCEnableNSProvider 函数 (ws2spi.h)

WSCEnableNSProvider 函数更改给定命名空间提供程序的状态。 它旨在使最终用户能够更改命名空间提供程序的状态。

语法

INT WSCEnableNSProvider(
  [in] LPGUID lpProviderId,
  [in] BOOL   fEnable
);

参数

[in] lpProviderId

指向命名空间提供程序的全局唯一标识符 (GUID) 的指针。

[in] fEnable

一个布尔值,如果 为 TRUE,则提供程序设置为活动状态。 如果 为 FALSE,则禁用提供程序,并且将不可用于查询操作或服务注册。

返回值

如果未发生错误, WSCEnableNSProvider 函数将返回 NO_ERROR (零) 。 否则,如果函数失败,它将返回 SOCKET_ERROR ,必须使用 WSAGetLastError 函数检索相应的错误代码。

错误代码 含义
WSAEFAULT
lpProviderId 参数指向不在用户地址空间有效部分的内存。
WSAEINVAL
指定的命名空间提供程序标识符无效。
WSASYSCALLFAILURE
不应失败的系统调用失败。
WSA_NOT_ENOUGH_MEMORY
可用内存不足。 如果内存不足,无法分配新的目录条目,则返回此错误。

注解

WSCEnableNSProvider 函数旨在用于更改命名空间提供程序的状态。 独立软件供应商 (ISV) 通常不应为了激活自己的另一个 ISV 命名空间提供程序而取消激活另一个 ISV 命名空间提供程序。 选择应该留给用户。

WSCEnableNSProvider 函数不会影响已运行的应用程序。 新安装的命名空间提供程序对应用程序不可见,命名空间提供程序的激活状态更改也不会可见。 调用 WSCEnableNSProvider 后启动的应用程序将看到这些更改。

WSCEnableNSProvider 函数只能由以 Administrators 组成员身份登录的用户调用。 如果 WSCEnableNSProvider 由不是 Administrators 组成员的用户调用,则函数调用将失败。

对于运行 Windows Vista 或 Windows Server 2008 的计算机,此函数也可能因为用户帐户控制 (UAC) 而失败。 如果包含此函数的应用程序由以管理员组成员身份登录(而不是内置管理员)的用户执行,则此调用将失败,除非应用程序已在清单文件中标记为 requestedExecutionLevel 设置为 requireAdministrator。 如果 Windows Vista 或 Windows Server 2008 上的应用程序缺少此清单文件,则作为管理员组成员(而不是内置管理员)登录的用户必须在增强的 shell 中执行应用程序,因为内置管理员 (RunAs 管理员) 才能使此功能成功。

要求

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

另请参阅

WSCEnumProtocols

WSCInstallNameSpace

WSCUnInstallNameSpace

WSCWriteNameSpaceOrder