ntoskrnl.exe: Implement ExAcquireFastMutex and ExReleaseFastMutex.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47044
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2019-05-16 20:18:58 +02:00 committed by Alexandre Julliard
parent 40ae0e8455
commit ed140a7ac5
2 changed files with 24 additions and 0 deletions

View File

@ -1,3 +1,4 @@
@ stdcall -arch=arm,arm64,x86_64 ExAcquireFastMutex(ptr)
@ stdcall -fastcall ExAcquireFastMutexUnsafe(ptr)
@ stub ExAcquireRundownProtection
@ stub ExAcquireRundownProtectionEx
@ -8,6 +9,7 @@
@ stdcall -fastcall -arch=i386 ExInterlockedPopEntrySList(ptr ptr) NTOSKRNL_ExInterlockedPopEntrySList
@ stdcall -fastcall -arch=i386 ExInterlockedPushEntrySList (ptr ptr ptr) NTOSKRNL_ExInterlockedPushEntrySList
@ stub ExReInitializeRundownProtection
@ stdcall -arch=arm,arm64,x86_64 ExReleaseFastMutex(ptr)
@ stdcall -fastcall ExReleaseFastMutexUnsafe(ptr)
@ stdcall -fastcall ExReleaseResourceLite(ptr)
@ stub ExReleaseRundownProtection

View File

@ -732,6 +732,28 @@ void FASTCALL ExReleaseFastMutexUnsafe( FAST_MUTEX *mutex )
KeSetEvent( &mutex->Event, IO_NO_INCREMENT, FALSE );
}
#ifndef __i386__
/***********************************************************************
* ExAcquireFastMutex (NTOSKRNL.@)
*/
void WINAPI ExAcquireFastMutex( FAST_MUTEX *mutex )
{
/* FIXME: lower IRQL */
ExAcquireFastMutexUnsafe( mutex );
}
/***********************************************************************
* ExReleaseFastMutex (NTOSKRNL.@)
*/
void WINAPI ExReleaseFastMutex( FAST_MUTEX *mutex )
{
ExReleaseFastMutexUnsafe( mutex );
/* FIXME: restore IRQL */
}
#endif /* __i386__ */
/* Use of the fields of an ERESOURCE structure seems to vary wildly between
* Windows versions. The below implementation uses them as follows:
*