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 函数的调用关闭对服务的所有打开句柄之前,不会删除数据库条目,并且服务未运行。 通过调用 ControlService 函数并使用SERVICE_CONTROL_STOP控制代码停止正在运行的服务。 如果服务无法停止,则在重新启动系统时会删除数据库条目。

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

示例

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

要求

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

请参阅

CloseServiceHandle

ControlService

CreateService

OpenService

服务函数

服务安装、删除和枚举