}
-static NTSTATUS
-ScmStartService(PSERVICE Service,
- PSERVICE_GROUP Group)
+NTSTATUS
+ScmStartService(PSERVICE Service)
{
+ PSERVICE_GROUP Group = Service->lpGroup;
NTSTATUS Status;
DPRINT("ScmStartService() called\n");
(CurrentService->dwTag == CurrentGroup->TagArray[i]))
{
CurrentService->ServiceVisited = TRUE;
- ScmStartService(CurrentService,
- CurrentGroup);
+ ScmStartService(CurrentService);
}
ServiceEntry = ServiceEntry->Flink;
(CurrentService->ServiceVisited == FALSE))
{
CurrentService->ServiceVisited = TRUE;
- ScmStartService(CurrentService,
- CurrentGroup);
+ ScmStartService(CurrentService);
}
ServiceEntry = ServiceEntry->Flink;
(CurrentService->ServiceVisited == FALSE))
{
CurrentService->ServiceVisited = TRUE;
- ScmStartService(CurrentService,
- NULL);
+ ScmStartService(CurrentService);
}
ServiceEntry = ServiceEntry->Flink;
(CurrentService->ServiceVisited == FALSE))
{
CurrentService->ServiceVisited = TRUE;
- ScmStartService(CurrentService,
- NULL);
+ ScmStartService(CurrentService);
}
ServiceEntry = ServiceEntry->Flink;
wcscpy(lpGroup->szGroupName, lpGroupName);
lpGroup->lpGroupName = lpGroup->szGroupName;
lpGroup->dwRefCount = 1;
+ lpService->lpGroup = lpGroup;
InsertTailList(&UnknownGroupListHead,
&lpGroup->GroupListEntry);
LPQUERY_SERVICE_CONFIGW lpConfig;
LPWSTR lpStr;
- DPRINT1("ScmrQueryServiceConfigW() called\n");
+ DPRINT("ScmrQueryServiceConfigW() called\n");
if (ScmShutdown)
return ERROR_SHUTDOWN_IN_PROGRESS;
/* FIXME: Unlock the service database */
- DPRINT1("ScmrQueryServiceConfigW() done\n");
+ DPRINT("ScmrQueryServiceConfigW() done\n");
return dwError;
}
DWORD dwError = ERROR_SUCCESS;
PSERVICE_HANDLE hSvc;
PSERVICE lpService = NULL;
+ NTSTATUS Status;
DPRINT1("ScmrStartServiceW() called\n");
if (lpService->bDeleted)
return ERROR_SERVICE_MARKED_FOR_DELETE;
- /* FIXME: Start the service */
+ /* Start the service */
+ Status = STATUS_SUCCESS; /* FIXME: ScmStartService(lpService); */
+ if (!NT_SUCCESS(Status))
+ return RtlNtStatusToDosError(Status);
return dwError;
}