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 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | nspapi.h |
库 | Mswsock.lib |
DLL | Mswsock.dll |