deleteService 函数 (winsvc.h)

将指定的服务标记为从服务控制管理器数据库中删除。

语法

BOOL DeleteService(
  [in] SC_HANDLE hService
);

参数

[in] hService

服务的句柄。 此句柄由 OpenServiceCreateService 函数返回,并且必须具有 DELETE 访问权限。 有关详细信息,请参阅 服务安全和访问权限

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

以下错误代码可能由服务控制管理器设置。 其他可能由服务控制管理器调用的注册表函数设置。

返回代码 说明
ERROR_ACCESS_DENIED
句柄没有 DELETE 访问权限。
ERROR_INVALID_HANDLE
指定的句柄无效。
ERROR_SERVICE_MARKED_FOR_DELETE
指定的服务已标记为要删除。

注解

DeleteService 函数将服务标记为要从服务控制管理器数据库中删除。 在通过调用 CloseServiceHandle 函数关闭服务的所有打开句柄并且服务未运行之前,不会删除数据库条目。 通过使用SERVICE_CONTROL_STOP控件代码调用 ControlService 函数来停止正在运行的服务。 如果服务无法停止,则重启系统时会删除数据库条目。

服务控制管理器通过从注册表中删除服务键及其子项来删除服务。

示例

有关示例,请参阅 删除服务

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 winsvc.h (包括 Windows.h)
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

CloseServiceHandle

ControlService

CreateService

OpenService

服务函数

服务安装、删除和枚举