DeleteService
The DeleteService function marks the specified service for deletion from the service control manager database.
BOOL DeleteService( SC_HANDLE hService );
Parameters
-
hService
- [in] Handle to the service. This handle is returned by the OpenService or CreateService function, and it must have the DELETE access right. For more information, see Service Security and Access Rights.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
The following error codes may be set by the service control manager. Others may be set by the registry functions that are called by the service control manager.
Return code | Description |
---|---|
ERROR_ACCESS_DENIED | The handle does not have the DELETE access right. |
ERROR_INVALID_HANDLE | The specified handle is invalid. |
ERROR_SERVICE_MARKED_FOR_DELETE | The specified service has already been marked for deletion. |
Remarks
The DeleteService function marks a service for deletion from the service control manager database. The database entry is not removed until all open handles to the service have been closed by calls to the CloseServiceHandle function, and the service is not running. A running service is stopped by a call to the ControlService function with the SERVICE_CONTROL_STOP control code. If the service cannot be stopped, the database entry is removed when the system is restarted.
The service control manager deletes the service by deleting the service key and its subkeys from the registry.
Example Code
For an example, see Deleting a Service.
Requirements
Client | Requires Windows XP, Windows 2000 Professional, or Windows NT Workstation. |
---|---|
Server | Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server. |
Header | Declared in Winsvc.h; include Windows.h. |
Library | Link to Advapi32.lib. |
DLL | Requires Advapi32.dll. |