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

Alexandre Julliard julliard at winehq.org
Wed Nov 28 14:11:48 CST 2018


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

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Tue Nov 27 19:43:04 2018 -0600

ntoskrnl.exe: Implement KeInitializeTimerEx().

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

---

 dlls/ntoskrnl.exe/ntoskrnl.c | 21 ---------------------
 dlls/ntoskrnl.exe/sync.c     | 25 +++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 712681e..be63740 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2285,27 +2285,6 @@ void WINAPI KeInitializeSpinLock( PKSPIN_LOCK SpinLock )
     FIXME( "stub: %p\n", SpinLock );
 }
 
-
-/***********************************************************************
- *           KeInitializeTimerEx   (NTOSKRNL.EXE.@)
- */
-void WINAPI KeInitializeTimerEx( PKTIMER Timer, TIMER_TYPE Type )
-{
-    FIXME( "stub: %p %d\n", Timer, Type );
-
-    RtlZeroMemory(Timer, sizeof(KTIMER));
-    Timer->Header.Type = Type ? 9 : 8;
-}
-
-
-/***********************************************************************
- *           KeInitializeTimer   (NTOSKRNL.EXE.@)
- */
-void WINAPI KeInitializeTimer( PKTIMER Timer )
-{
-    KeInitializeTimerEx(Timer, NotificationTimer);
-}
-
 /***********************************************************************
  *           KeInsertQueue   (NTOSKRNL.EXE.@)
  */
diff --git a/dlls/ntoskrnl.exe/sync.c b/dlls/ntoskrnl.exe/sync.c
index e63c793..910572b 100644
--- a/dlls/ntoskrnl.exe/sync.c
+++ b/dlls/ntoskrnl.exe/sync.c
@@ -38,6 +38,8 @@ enum object_type
     TYPE_AUTO_EVENT = 1,
     TYPE_MUTEX = 2,
     TYPE_SEMAPHORE = 5,
+    TYPE_MANUAL_TIMER = 8,
+    TYPE_AUTO_TIMER = 9,
 };
 
 static CRITICAL_SECTION sync_cs;
@@ -292,3 +294,26 @@ LONG WINAPI KeReleaseMutex( PRKMUTEX mutex, BOOLEAN wait )
 
     return ret;
 }
+
+/***********************************************************************
+ *           KeInitializeTimerEx   (NTOSKRNL.EXE.@)
+ */
+void WINAPI KeInitializeTimerEx( KTIMER *timer, TIMER_TYPE type )
+{
+    TRACE("timer %p, type %u.\n", timer, type);
+
+    RtlZeroMemory(timer, sizeof(KTIMER));
+    timer->Header.Type = (type == NotificationTimer) ? TYPE_MANUAL_TIMER : TYPE_AUTO_TIMER;
+    timer->Header.SignalState = FALSE;
+    timer->Header.Inserted = FALSE;
+    timer->Header.WaitListHead.Blink = NULL;
+    timer->Header.WaitListHead.Flink = NULL;
+}
+
+/***********************************************************************
+ *           KeInitializeTimer   (NTOSKRNL.EXE.@)
+ */
+void WINAPI KeInitializeTimer( KTIMER *timer )
+{
+    KeInitializeTimerEx(timer, NotificationTimer);
+}




More information about the wine-cvs mailing list