return Status;
}
- EnterCriticalSection(&StartServiceCriticalSection);
-
/* Create '\\.\pipe\net\NtControlPipeXXX' instance */
swprintf(NtControlPipeName, L"\\\\.\\pipe\\net\\NtControlPipe%u", ServiceCurrent);
Service->ControlPipeHandle = CreateNamedPipeW(NtControlPipeName,
if (Service->ControlPipeHandle == INVALID_HANDLE_VALUE)
{
DPRINT1("Failed to create control pipe!\n");
- LeaveCriticalSection(&StartServiceCriticalSection);
return GetLastError();
}
Service->ControlPipeHandle = INVALID_HANDLE_VALUE;
DPRINT1("Starting '%S' failed!\n", Service->lpServiceName);
- LeaveCriticalSection(&StartServiceCriticalSection);
return dwError;
}
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
- LeaveCriticalSection(&StartServiceCriticalSection);
-
return dwError;
}
PSERVICE_GROUP Group = Service->lpGroup;
DWORD dwError = ERROR_SUCCESS;
+ EnterCriticalSection(&StartServiceCriticalSection);
+
DPRINT("ScmStartService() called\n");
Service->ControlPipeHandle = INVALID_HANDLE_VALUE;
}
DPRINT("ScmStartService() done (Error %lu)\n", dwError);
+ LeaveCriticalSection(&StartServiceCriticalSection);
if (dwError == ERROR_SUCCESS)
{