Mikolaj Zalewski : advapi32: The lpServiceStartName should default to LocalSystem for Win32 services.

Alexandre Julliard julliard at winehq.org
Thu Sep 27 09:27:34 CDT 2007


Module: wine
Branch: master
Commit: 2ba324738d9d04e7b32cd9fc0ec7b0aa8b45305b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2ba324738d9d04e7b32cd9fc0ec7b0aa8b45305b

Author: Mikolaj Zalewski <mikolajz at google.com>
Date:   Wed Sep 26 11:45:51 2007 -0700

advapi32: The lpServiceStartName should default to LocalSystem for Win32 services.

---

 dlls/advapi32/service.c       |    4 ++++
 dlls/advapi32/tests/service.c |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c
index 82bd7ed..4708506 100644
--- a/dlls/advapi32/service.c
+++ b/dlls/advapi32/service.c
@@ -39,6 +39,7 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(advapi);
 
+static const WCHAR szLocalSystem[] = {'L','o','c','a','l','S','y','s','t','e','m',0};
 static const WCHAR szServiceManagerKey[] = { 'S','y','s','t','e','m','\\',
       'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\',
       'S','e','r','v','i','c','e','s',0 };
@@ -1342,6 +1343,9 @@ CreateServiceW( SC_HANDLE hSCManager, LPCWSTR lpServiceName,
         return NULL;
     }
 
+    if (!lpServiceStartName && (dwServiceType & SERVICE_WIN32))
+            lpServiceStartName = szLocalSystem;
+
     /* StartType can only be a single value (if several values are mixed the result is probably not what was intended) */
     if (dwStartType > SERVICE_DISABLED)
     {
diff --git a/dlls/advapi32/tests/service.c b/dlls/advapi32/tests/service.c
index bfb535d..79b4c3c 100644
--- a/dlls/advapi32/tests/service.c
+++ b/dlls/advapi32/tests/service.c
@@ -815,8 +815,8 @@ static void test_sequence(void)
     todo_wine
     {
     ok(!memcmp(config->lpDependencies, dependencies, sizeof(dependencies)), "Wrong string\n");
-    ok(!strcmp(config->lpServiceStartName, localsystem), "Expected 'LocalSystem', got '%s'\n", config->lpServiceStartName);
     }
+    ok(!strcmp(config->lpServiceStartName, localsystem), "Expected 'LocalSystem', got '%s'\n", config->lpServiceStartName);
     ok(!strcmp(config->lpDisplayName, displayname), "Expected '%s', got '%s'\n", displayname, config->lpDisplayName);
     
     SetLastError(0xdeadbeef);




More information about the wine-cvs mailing list