- Mark service for delete in the registry. Modified: trunk/reactos/subsys/system/services/config.c Modified: trunk/reactos/subsys/system/services/database.c Modified: trunk/reactos/subsys/system/services/services.h _____
Modified: trunk/reactos/subsys/system/services/config.c --- trunk/reactos/subsys/system/services/config.c 2005-11-01 13:47:40 UTC (rev 18929) +++ trunk/reactos/subsys/system/services/config.c 2005-11-01 13:52:22 UTC (rev 18930) @@ -11,7 +11,38 @@
/* FUNCTIONS *****************************************************************/
+ DWORD +ScmOpenServiceKey(LPWSTR lpServiceName, + REGSAM samDesired, + PHKEY phKey) +{ + HKEY hServicesKey = NULL; + DWORD dwError; + + *phKey = NULL; + + dwError = RegOpenKeyExW(HKEY_LOCAL_MACHINE, + L"System\CurrentControlSet\Services", + 0, + KEY_READ, + &hServicesKey); + if (dwError != ERROR_SUCCESS) + return dwError; + + dwError = RegOpenKeyExW(hServicesKey, + lpServiceName, + 0, + samDesired, + phKey); + + RegCloseKey(hServicesKey); + + return dwError; +} + + +DWORD ScmWriteDependencies(HKEY hServiceKey, LPWSTR lpDependencies, DWORD dwDependenciesLength) _____
Modified: trunk/reactos/subsys/system/services/database.c --- trunk/reactos/subsys/system/services/database.c 2005-11-01 13:47:40 UTC (rev 18929) +++ trunk/reactos/subsys/system/services/database.c 2005-11-01 13:52:22 UTC (rev 18930) @@ -987,9 +987,28 @@
DWORD ScmMarkServiceForDelete(PSERVICE pService) { - DPRINT1("ScmMarkServiceForDelete() called\n"); + HKEY hServiceKey = NULL; + DWORD dwValue = 1; + DWORD dwError;
- return ERROR_SUCCESS; + DPRINT("ScmMarkServiceForDelete() called\n"); + + dwError = ScmOpenServiceKey(pService->lpServiceName, + KEY_WRITE, + &hServiceKey); + if (dwError != ERROR_SUCCESS) + return dwError; + + dwError = RegSetValueExW(hServiceKey, + L"DeleteFlag", + 0, + REG_DWORD, + (LPBYTE)&dwValue, + sizeof(DWORD)); + + RegCloseKey(hServiceKey); + + return dwError; }
/* EOF */ _____
Modified: trunk/reactos/subsys/system/services/services.h --- trunk/reactos/subsys/system/services/services.h 2005-11-01 13:47:40 UTC (rev 18929) +++ trunk/reactos/subsys/system/services/services.h 2005-11-01 13:52:22 UTC (rev 18930) @@ -43,6 +43,10 @@
/* config.c */
+DWORD ScmOpenServiceKey(LPWSTR lpServiceName, + REGSAM samDesired, + PHKEY phKey); + DWORD ScmWriteDependencies(HKEY hServiceKey, LPWSTR lpDependencies, DWORD dwDependenciesLength);