https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1aa359ec7f5cd7597d3d138c7323dedac9774e41

commit 1aa359ec7f5cd7597d3d138c7323dedac9774e41
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Sun Feb 25 00:31:17 2018 +0100
Commit:     Hermès Bélusca-Maïto <[email protected]>
CommitDate: Sun Feb 25 00:49:58 2018 +0100

    [SERVICES] Send services shutdown notifications only if they accept them.
---
 base/system/services/database.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/base/system/services/database.c b/base/system/services/database.c
index d28a98c082..9ae8441b64 100644
--- a/base/system/services/database.c
+++ b/base/system/services/database.c
@@ -2164,10 +2164,11 @@ ScmAutoShutdownServices(VOID)
     {
         CurrentService = CONTAINING_RECORD(ServiceEntry, SERVICE, 
ServiceListEntry);
 
-        if (CurrentService->Status.dwCurrentState == SERVICE_RUNNING ||
-            CurrentService->Status.dwCurrentState == SERVICE_START_PENDING)
+        if ((CurrentService->Status.dwControlsAccepted & 
SERVICE_ACCEPT_SHUTDOWN) &&
+            (CurrentService->Status.dwCurrentState == SERVICE_RUNNING ||
+             CurrentService->Status.dwCurrentState == SERVICE_START_PENDING))
         {
-            /* shutdown service */
+            /* Send the shutdown notification */
             DPRINT("Shutdown service: %S\n", CurrentService->lpServiceName);
             ScmControlService(CurrentService->lpImage->hControlPipe,
                               CurrentService->lpServiceName,

Reply via email to