From 2c472c9d01eea84325e60c6cabbde5bfd22abe10 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sat, 12 Nov 2011 21:16:20 +0000 Subject: [PATCH] [SERVICES] RControlService returns ERROR_SERVICE_NOT_ACTIVE if the service has not been started. svn path=/trunk/; revision=54369 --- reactos/base/system/services/rpcserver.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/reactos/base/system/services/rpcserver.c b/reactos/base/system/services/rpcserver.c index 232a7dd092a..0ffa838aa1b 100644 --- a/reactos/base/system/services/rpcserver.c +++ b/reactos/base/system/services/rpcserver.c @@ -646,6 +646,7 @@ ScmConvertToBootPathName(wchar_t *CanonName, wchar_t **RelativeName) return ERROR_INVALID_PARAMETER; } + DWORD ScmCanonDriverImagePath(DWORD dwStartType, const wchar_t *lpServiceName, @@ -1179,6 +1180,10 @@ DWORD RControlService( dwControlsAccepted = lpService->Status.dwControlsAccepted; dwCurrentState = lpService->Status.dwCurrentState; + /* Return ERROR_SERVICE_NOT_ACTIVE if the service has not been started */ + if (lpService->lpImage == NULL || dwCurrentState == SERVICE_STOPPED) + return ERROR_SERVICE_NOT_ACTIVE; + /* Check the current state before sending a control request */ switch (dwCurrentState) { @@ -2064,9 +2069,10 @@ DWORD RCreateServiceW( /* Unlock the service database */ ScmUnlockDatabase(); - /* check if it is marked for deletion */ + /* Check if it is marked for deletion */ if (lpService->bDeleted) return ERROR_SERVICE_MARKED_FOR_DELETE; + /* Return Error exist */ return ERROR_SERVICE_EXISTS; }