winemac: Directly use ntdll for display device mutex.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2022-05-13 22:14:54 +02:00 committed by Alexandre Julliard
parent 5c9eb1905c
commit e040731881
1 changed files with 9 additions and 5 deletions

View File

@ -74,17 +74,21 @@ static BOOL inited_original_display_mode;
static HANDLE get_display_device_init_mutex(void) static HANDLE get_display_device_init_mutex(void)
{ {
static const WCHAR init_mutexW[] = {'d','i','s','p','l','a','y','_','d','e','v','i','c','e','_','i','n','i','t',0}; static const WCHAR init_mutexW[] = {'d','i','s','p','l','a','y','_','d','e','v','i','c','e','_','i','n','i','t'};
HANDLE mutex = CreateMutexW(NULL, FALSE, init_mutexW); UNICODE_STRING name = { sizeof(init_mutexW), sizeof(init_mutexW), (WCHAR *)init_mutexW };
OBJECT_ATTRIBUTES attr;
HANDLE mutex = 0;
WaitForSingleObject(mutex, INFINITE); InitializeObjectAttributes(&attr, &name, OBJ_OPENIF, NULL, NULL);
NtCreateMutant(&mutex, MUTEX_ALL_ACCESS, &attr, FALSE);
if (mutex) NtWaitForSingleObject(mutex, FALSE, NULL);
return mutex; return mutex;
} }
static void release_display_device_init_mutex(HANDLE mutex) static void release_display_device_init_mutex(HANDLE mutex)
{ {
ReleaseMutex(mutex); NtReleaseMutant(mutex, NULL);
CloseHandle(mutex); NtClose(mutex);
} }
static BOOL get_display_device_reg_key(const WCHAR *device_name, WCHAR *key, unsigned len) static BOOL get_display_device_reg_key(const WCHAR *device_name, WCHAR *key, unsigned len)