return ERROR_INVALID_HANDLE;
}
+ ScmLockDatabaseShared();
+
/* Return service status information */
RtlCopyMemory(lpServiceStatus,
&lpService->Status,
sizeof(SERVICE_STATUS));
+ ScmUnlockDatabase();
+
return ERROR_SUCCESS;
}
return ERROR_INVALID_HANDLE;
}
- lpService = ScmGetServiceEntryByClientHandle((HANDLE)hServiceStatus);
+ lpService = (PSERVICE)hServiceStatus;
if (lpService == NULL)
{
DPRINT("lpService == NULL!\n");
return ERROR_INVALID_DATA;
}
+ ScmLockDatabaseExclusive();
RtlCopyMemory(&lpService->Status,
lpServiceStatus,
sizeof(SERVICE_STATUS));
+ ScmUnlockDatabase();
+
DPRINT("Set %S to %lu\n", lpService->lpDisplayName, lpService->Status.dwCurrentState);
DPRINT("RSetServiceStatus() done\n");