Resend: Implemented LockServiceDatabase and UnlockServiceDatabase
Alexander Yaworsky
yaworsky at migusoft.ru
Thu Sep 9 02:55:24 CDT 2004
Hello
Is something wrong?
ChangeLog:
Implemented LockServiceDatabase and UnlockServiceDatabase
Index: dlls/advapi32/service.c
===================================================================
RCS file: /home/wine/wine/dlls/advapi32/service.c,v
retrieving revision 1.53
diff -u -r1.53 service.c
--- dlls/advapi32/service.c 6 Sep 2004 20:28:32 -0000 1.53
+++ dlls/advapi32/service.c 8 Sep 2004 02:24:32 -0000
@@ -43,6 +43,8 @@
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 };
+static const WCHAR szSCMLock[] = {'A','D','V','A','P','I','_','S','C','M',
+ 'L','O','C','K',0};
/******************************************************************************
* SC_HANDLEs
@@ -286,8 +288,22 @@
*/
LPVOID WINAPI LockServiceDatabase (SC_HANDLE hSCManager)
{
- FIXME("%p\n",hSCManager);
- return (SC_HANDLE)0xcacacafe;
+ HANDLE ret;
+
+ TRACE("%p\n",hSCManager);
+
+ ret = CreateFileMappingW( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE,
+ 0, MAX_SERVICE_NAME * sizeof(WCHAR), szSCMLock );
+ if( ret && GetLastError() == ERROR_ALREADY_EXISTS )
+ {
+ CloseHandle( ret );
+ ret = NULL;
+ SetLastError( ERROR_SERVICE_DATABASE_LOCKED );
+ }
+
+ TRACE("returning %p\n", ret);
+
+ return ret;
}
/******************************************************************************
@@ -295,8 +311,9 @@
*/
BOOL WINAPI UnlockServiceDatabase (LPVOID ScLock)
{
- FIXME(": %p\n",ScLock);
- return TRUE;
+ TRACE("%p\n",ScLock);
+
+ return CloseHandle( (HANDLE) ScLock );
}
/******************************************************************************
More information about the wine-patches
mailing list