Zebediah Figura : ntoskrnl.exe: Implement KeInitializeMutex().

Alexandre Julliard julliard at winehq.org
Tue Nov 27 14:26:10 CST 2018


Module: wine
Branch: master
Commit: e3223f30aa298044dcf5c72e0ae64352d953f690
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=e3223f30aa298044dcf5c72e0ae64352d953f690

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Mon Nov 26 19:39:18 2018 -0600

ntoskrnl.exe: Implement KeInitializeMutex().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntoskrnl.exe/ntoskrnl.c |  9 ---------
 dlls/ntoskrnl.exe/sync.c     | 14 ++++++++++++++
 include/ddk/wdm.h            |  1 +
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index d0e77c5..1d1033e 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2278,15 +2278,6 @@ PRKTHREAD WINAPI KeGetCurrentThread(void)
 }
 
  /***********************************************************************
- *           KeInitializeMutex   (NTOSKRNL.EXE.@)
- */
-void WINAPI KeInitializeMutex(PRKMUTEX Mutex, ULONG Level)
-{
-    FIXME( "stub: %p, %u\n", Mutex, Level );
-}
-
-
- /***********************************************************************
  *           KeWaitForMutexObject   (NTOSKRNL.EXE.@)
  */
 NTSTATUS WINAPI KeWaitForMutexObject(PRKMUTEX Mutex, KWAIT_REASON WaitReason, KPROCESSOR_MODE WaitMode,
diff --git a/dlls/ntoskrnl.exe/sync.c b/dlls/ntoskrnl.exe/sync.c
index 7717846..6f356f6 100644
--- a/dlls/ntoskrnl.exe/sync.c
+++ b/dlls/ntoskrnl.exe/sync.c
@@ -36,6 +36,7 @@ enum object_type
 {
     TYPE_MANUAL_EVENT = 0,
     TYPE_AUTO_EVENT = 1,
+    TYPE_MUTEX = 2,
     TYPE_SEMAPHORE = 5,
 };
 
@@ -218,3 +219,16 @@ LONG WINAPI KeReleaseSemaphore( PRKSEMAPHORE semaphore, KPRIORITY increment,
 
     return ret;
 }
+
+/***********************************************************************
+ *           KeInitializeMutex   (NTOSKRNL.EXE.@)
+ */
+void WINAPI KeInitializeMutex( PRKMUTEX mutex, ULONG level )
+{
+    TRACE("mutex %p, level %u.\n", mutex, level);
+
+    mutex->Header.Type = TYPE_MUTEX;
+    mutex->Header.SignalState = 1;
+    mutex->Header.WaitListHead.Blink = NULL;
+    mutex->Header.WaitListHead.Flink = NULL;
+}
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index 522bb3f..831304e 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1421,6 +1421,7 @@ NTSTATUS  WINAPI IoWMIRegistrationControl(PDEVICE_OBJECT,ULONG);
 
 PKTHREAD  WINAPI KeGetCurrentThread(void);
 void      WINAPI KeInitializeEvent(PRKEVENT,EVENT_TYPE,BOOLEAN);
+void      WINAPI KeInitializeMutex(PRKMUTEX,ULONG);
 void      WINAPI KeInitializeSemaphore(PRKSEMAPHORE,LONG,LONG);
 void      WINAPI KeInitializeTimerEx(PKTIMER,TIMER_TYPE);
 void      WINAPI KeQuerySystemTime(LARGE_INTEGER*);




More information about the wine-cvs mailing list