Author: hbelusca Date: Tue Dec 18 20:38:54 2012 New Revision: 57946
URL: http://svn.reactos.org/svn/reactos?rev=57946&view=rev Log: [SERVICES] - services.exe is indeed a GUI program, so build it as such. - Check the return value of RegisterServicesProcess and thus allow only one instance of services.exe to be launched.
CORE-6123 #resolve #comment Fixed by r57946.
Modified: trunk/reactos/base/system/services/CMakeLists.txt trunk/reactos/base/system/services/services.c
Modified: trunk/reactos/base/system/services/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/services/CMakeL... ============================================================================== --- trunk/reactos/base/system/services/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/base/system/services/CMakeLists.txt [iso-8859-1] Tue Dec 18 20:38:54 2012 @@ -25,7 +25,7 @@ target_link_libraries(services ${PSEH_LIB}) endif()
-set_module_type(services win32cui UNICODE) +set_module_type(services win32gui UNICODE) add_importlibs(services user32 advapi32 rpcrt4 msvcrt kernel32 ntdll) add_pch(services services.h ${CMAKE_CURRENT_BINARY_DIR}/svcctl_s.h) add_cd_file(TARGET services DESTINATION reactos/system32 FOR all)
Modified: trunk/reactos/base/system/services/services.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/services/servic... ============================================================================== --- trunk/reactos/base/system/services/services.c [iso-8859-1] (original) +++ trunk/reactos/base/system/services/services.c [iso-8859-1] Tue Dec 18 20:38:54 2012 @@ -8,10 +8,6 @@ * */
-/* NOTE: - * - Services.exe is NOT a native application, it is a GUI app. - */ - /* INCLUDES *****************************************************************/
#include "services.h" @@ -393,7 +389,7 @@ goto done; }
- /* Create the service database */ + /* Create the services database */ dwError = ScmCreateServiceDatabase(); if (dwError != ERROR_SUCCESS) { @@ -401,11 +397,15 @@ goto done; }
- /* Update service database */ + /* Update the services database */ ScmGetBootAndSystemDriverState();
- /* Register service process with CSRSS */ - RegisterServicesProcess(GetCurrentProcessId()); + /* Register the Service Control Manager process with CSRSS */ + if (!RegisterServicesProcess(GetCurrentProcessId())) + { + DPRINT1("SERVICES: Could not register SCM process\n"); + goto done; + }
/* Acquire the service start lock until autostart services have been started */ dwError = ScmAcquireServiceStartLock(TRUE, &Lock);