forked from Mirrors/wine-wine
services: Make svcctl_{Lock, Unlock}ServiceDatabase() into a no-op.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>feature/deterministic
parent
529b07ee11
commit
c0977fcbec
|
@ -1365,55 +1365,23 @@ DWORD __cdecl svcctl_CloseServiceHandle(
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SC_RPC_LOCK_destroy(SC_RPC_LOCK hLock)
|
|
||||||
{
|
|
||||||
struct sc_lock *lock = hLock;
|
|
||||||
scmdatabase_unlock_startup(lock->db);
|
|
||||||
HeapFree(GetProcessHeap(), 0, lock);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __RPC_USER SC_RPC_LOCK_rundown(SC_RPC_LOCK hLock)
|
void __RPC_USER SC_RPC_LOCK_rundown(SC_RPC_LOCK hLock)
|
||||||
{
|
{
|
||||||
SC_RPC_LOCK_destroy(hLock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD __cdecl svcctl_LockServiceDatabase(
|
DWORD __cdecl svcctl_LockServiceDatabase(SC_RPC_HANDLE manager, SC_RPC_LOCK *lock)
|
||||||
SC_RPC_HANDLE hSCManager,
|
|
||||||
SC_RPC_LOCK *phLock)
|
|
||||||
{
|
{
|
||||||
struct sc_manager_handle *manager;
|
TRACE("(%p, %p)\n", manager, lock);
|
||||||
struct sc_lock *lock;
|
|
||||||
DWORD err;
|
|
||||||
|
|
||||||
WINE_TRACE("(%p, %p)\n", hSCManager, phLock);
|
|
||||||
|
|
||||||
if ((err = validate_scm_handle(hSCManager, SC_MANAGER_LOCK, &manager)) != ERROR_SUCCESS)
|
|
||||||
return err;
|
|
||||||
|
|
||||||
if (!scmdatabase_lock_startup(manager->db, 0))
|
|
||||||
return ERROR_SERVICE_DATABASE_LOCKED;
|
|
||||||
|
|
||||||
lock = HeapAlloc(GetProcessHeap(), 0, sizeof(struct sc_lock));
|
|
||||||
if (!lock)
|
|
||||||
{
|
|
||||||
scmdatabase_unlock_startup(manager->db);
|
|
||||||
return ERROR_NOT_ENOUGH_SERVER_MEMORY;
|
|
||||||
}
|
|
||||||
|
|
||||||
lock->db = manager->db;
|
|
||||||
*phLock = lock;
|
|
||||||
|
|
||||||
|
*lock = (SC_RPC_LOCK)0xdeadbeef;
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD __cdecl svcctl_UnlockServiceDatabase(
|
DWORD __cdecl svcctl_UnlockServiceDatabase(SC_RPC_LOCK *lock)
|
||||||
SC_RPC_LOCK *phLock)
|
|
||||||
{
|
{
|
||||||
WINE_TRACE("(&%p)\n", *phLock);
|
TRACE("(&%p)\n", *lock);
|
||||||
|
|
||||||
SC_RPC_LOCK_destroy(*phLock);
|
|
||||||
*phLock = NULL;
|
|
||||||
|
|
||||||
|
*lock = NULL;
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue