mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 08:54:05 +00:00
ntoskrnl.exe: Implement KeInitializeGuardedMutex.
This commit is contained in:
parent
0c24f2b895
commit
c212987dc5
|
@ -577,6 +577,7 @@
|
|||
@ stub KeInitializeInterrupt
|
||||
@ stub KeInitializeMutant
|
||||
@ stdcall KeInitializeMutex(ptr long)
|
||||
@ stdcall KeInitializeGuardedMutex(ptr)
|
||||
@ stub KeInitializeQueue
|
||||
@ stdcall KeInitializeSemaphore(ptr long long)
|
||||
@ stdcall KeInitializeSpinLock(ptr) NTOSKRNL_KeInitializeSpinLock
|
||||
|
|
|
@ -427,6 +427,18 @@ LONG WINAPI KeReleaseMutex( PRKMUTEX mutex, BOOLEAN wait )
|
|||
return ret;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* KeInitializeGuardedMutex (NTOSKRNL.EXE.@)
|
||||
*/
|
||||
void WINAPI KeInitializeGuardedMutex(PKGUARDED_MUTEX mutex)
|
||||
{
|
||||
TRACE("mutex %p.\n", mutex);
|
||||
mutex->Count = FM_LOCK_BIT;
|
||||
mutex->Owner = NULL;
|
||||
mutex->Contention = 0;
|
||||
KeInitializeEvent(&mutex->Event, SynchronizationEvent, FALSE);
|
||||
}
|
||||
|
||||
static void CALLBACK ke_timer_complete_proc(PTP_CALLBACK_INSTANCE instance, void *timer_, PTP_TIMER tp_timer)
|
||||
{
|
||||
KTIMER *timer = timer_;
|
||||
|
|
|
@ -253,6 +253,23 @@ typedef struct _FAST_MUTEX
|
|||
ULONG OldIrql;
|
||||
} FAST_MUTEX, *PFAST_MUTEX;
|
||||
|
||||
typedef struct _KGUARDED_MUTEX
|
||||
{
|
||||
LONG Count;
|
||||
PKTHREAD Owner;
|
||||
ULONG Contention;
|
||||
KEVENT Event;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
SHORT KernelApcDisable;
|
||||
SHORT SpecialApcDisable;
|
||||
};
|
||||
ULONG CombinedApcDisable;
|
||||
};
|
||||
} KGUARDED_MUTEX, *PKGUARDED_MUTEX;
|
||||
|
||||
#define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR))
|
||||
|
||||
typedef struct _VPB {
|
||||
|
|
Loading…
Reference in a new issue