From a7b546562e33daa882e6bd440da60a62d14bcac0 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Wed, 30 Dec 2009 17:17:58 +0000 Subject: [PATCH] [services] Set the given service start name or LocalSystem for a new service. svn path=/trunk/; revision=44816 --- reactos/base/system/services/rpcserver.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/reactos/base/system/services/rpcserver.c b/reactos/base/system/services/rpcserver.c index e11507a1068..d9dcfa3a50f 100644 --- a/reactos/base/system/services/rpcserver.c +++ b/reactos/base/system/services/rpcserver.c @@ -1733,6 +1733,7 @@ DWORD RCreateServiceW( SC_HANDLE hServiceHandle = NULL; LPWSTR lpImagePath = NULL; HKEY hServiceKey = NULL; + LPWSTR lpObjectName; DPRINT("RCreateServiceW() called\n"); DPRINT("lpServiceName = %S\n", lpServiceName); @@ -1973,16 +1974,16 @@ DWORD RCreateServiceW( goto done; } - /* FIXME: Handle lpServiceStartName propertly! */ - /* If a non driver and NULL for lpServiceStartName, write ObjectName as LocalSystem */ - if ((dwServiceType & SERVICE_WIN32) && (!lpServiceStartName)) + /* Write service start name */ + if (dwServiceType & SERVICE_WIN32) { + lpObjectName = (lpServiceStartName != NULL) ? (LPWSTR)lpServiceStartName : L"LocalSystem"; dwError = RegSetValueExW(hServiceKey, L"ObjectName", 0, REG_SZ, - (LPBYTE)L"LocalSystem", - 24); + (LPBYTE)lpObjectName, + (wcslen(lpObjectName) + 1) * sizeof(WCHAR)); if (dwError != ERROR_SUCCESS) goto done; }