From c21ede4474af3f2307bdc3178ae3cb5b0c26dbe5 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Mon, 12 Dec 2011 11:04:58 +0100 Subject: [PATCH] services: Terminate service when its status is set to SERVICE_STOPPED. --- programs/services/rpc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/programs/services/rpc.c b/programs/services/rpc.c index 0de183a5a72..579602a40b1 100644 --- a/programs/services/rpc.c +++ b/programs/services/rpc.c @@ -697,7 +697,9 @@ DWORD __cdecl svcctl_SetServiceStatus( service->service_entry->status.dwWaitHint = lpServiceStatus->dwWaitHint; service_unlock(service->service_entry); - if (service->service_entry->status_changed_event) + if (lpServiceStatus->dwCurrentState == SERVICE_STOPPED) + service_terminate(service->service_entry); + else if (service->service_entry->status_changed_event) SetEvent(service->service_entry->status_changed_event); return ERROR_SUCCESS; -- 2.11.4.GIT