[SERVICES] Keep a global service bits variable that combines the service bits of all running services

This commit is contained in:
Eric Kohl 2018-07-22 15:17:02 +02:00
parent 2158f31b71
commit 66981e1b07

View file

@ -97,6 +97,7 @@ ScmServiceMapping = {SERVICE_READ,
SERVICE_EXECUTE,
SERVICE_ALL_ACCESS};
DWORD g_dwServiceBits = 0;
/* FUNCTIONS ***************************************************************/
@ -1884,14 +1885,20 @@ RI_ScSetServiceBitsW(
if (bSetBitsOn)
{
DPRINT("Old service bits: %08lx\n", pService->dwServiceBits);
DPRINT("Old global service bits: %08lx\n", g_dwServiceBits);
pService->dwServiceBits |= dwServiceBits;
g_dwServiceBits |= dwServiceBits;
DPRINT("New service bits: %08lx\n", pService->dwServiceBits);
DPRINT("New global service bits: %08lx\n", g_dwServiceBits);
}
else
{
DPRINT("Old service bits: %08lx\n", pService->dwServiceBits);
DPRINT("Old global service bits: %08lx\n", g_dwServiceBits);
pService->dwServiceBits &= ~dwServiceBits;
g_dwServiceBits &= ~dwServiceBits;
DPRINT("New service bits: %08lx\n", pService->dwServiceBits);
DPRINT("New global service bits: %08lx\n", g_dwServiceBits);
}
return ERROR_SUCCESS;
@ -2540,7 +2547,6 @@ RCreateServiceW(
goto done;
}
DPRINT1("\n");
/* Write the security descriptor */
dwError = ScmWriteSecurityDescriptor(hServiceKey,
lpService->pSecurityDescriptor);