diff --git a/reactos/base/system/services/database.c b/reactos/base/system/services/database.c index 462cc259217..1c5dd29fa55 100644 --- a/reactos/base/system/services/database.c +++ b/reactos/base/system/services/database.c @@ -218,6 +218,8 @@ ScmCreateOrReferenceServiceImage(PSERVICE pService) pServiceImage->dwImageRunCount++; } + DPRINT("pServiceImage->dwImageRunCount: %lu\n", pServiceImage->dwImageRunCount); + /* Link the service image to the service */ pService->lpImage = pServiceImage; @@ -1081,6 +1083,13 @@ ScmStartUserModeService(PSERVICE Service, DPRINT("ScmStartUserModeService(%p)\n", Service); + /* If the image is already running ... */ + if (Service->lpImage->dwImageRunCount > 1) + { + /* ... just send a start command */ + return ScmSendStartCommand(Service, argc, argv); + } + StartupInfo.cb = sizeof(StartupInfo); StartupInfo.lpReserved = NULL; StartupInfo.lpDesktop = NULL;