setServiceA 函数 (nspapi.h)
SetService 函数在注册表中注册或删除一个或多个命名空间中的网络服务。 函数还可以添加或删除一个或多个命名空间中的网络服务类型。
语法
INT SetServiceA(
[in] DWORD dwNameSpace,
[in] DWORD dwOperation,
[in] DWORD dwFlags,
[in] LPSERVICE_INFOA lpServiceInfo,
[in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,
[out] LPDWORD lpdwStatusFlags
);
参数
[in] dwNameSpace
函数将在其中运行的命名空间或一组默认命名空间。
使用以下常量之一指定命名空间。
[in] dwOperation
函数将执行的操作。 使用以下值之一指定操作:
值 | 含义 |
---|---|
|
将网络服务注册到 命名空间。 此操作可与 SERVICE_FLAG_DEFER 和 SERVICE_FLAG_HARD 位标志一起使用。 |
|
从注册表中删除命名空间中的网络服务。 此操作可与 SERVICE_FLAG_DEFER 和 SERVICE_FLAG_HARD 位标志一起使用。 |
|
执行调用的任何操作,并将 SERVICE_FLAG_DEFER 位标志设置为 1。 |
|
将服务类型添加到 命名空间。
对于此操作,请使用 lpServiceInfo 指向的 SERVICE_INFO 结构的 ServiceSpecificInfo 成员传递SERVICE_TYPE_INFO_ABS结构。 还必须设置 SERVICE_INFO 结构的 ServiceType 成员。 忽略其他 SERVICE_INFO 成员。 |
|
从 命名空间中删除由指定SERVICE_ADD_TYPE操作的先前调用添加的服务类型。 |
[in] dwFlags
一组用于修改函数操作的位标志。 可以设置以下一个或多个位标志:
[in] lpServiceInfo
指向包含有关网络服务或服务类型信息的 SERVICE_INFO 结构的指针。
[in, optional] lpServiceAsyncInfo
保留供将来使用。 必须设置为 NULL。
[out] lpdwStatusFlags
接收函数状态信息的一组位标志。 定义了以下位标志:
值 | 含义 |
---|---|
|
一个或多个命名空间提供程序无法成功执行请求的操作。 |
返回值
如果函数失败,则返回值SOCKET_ERROR。 要获得更多的错误信息,请调用 GetLastError。 GetLastError 可以返回以下扩展错误值。
错误代码 | 含义 |
---|---|
|
函数尝试注册已注册的服务。 |
注解
注意
nspapi.h 标头将 SetService 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | nspapi.h |
Library | Mswsock.lib |
DLL | Mswsock.dll |
另请参阅
GetService