Alexandre Julliard : kernel32: Move timer queue functions to kernelbase.
Alexandre Julliard
julliard at winehq.org
Mon Jul 1 15:15:15 CDT 2019
Module: wine
Branch: master
Commit: d33d05ce273151b980b52939a703fe35bee849fc
URL: https://source.winehq.org/git/wine.git/?a=commit;h=d33d05ce273151b980b52939a703fe35bee849fc
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Jun 27 16:42:17 2019 +0200
kernel32: Move timer queue functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernel32/kernel32.spec | 10 ++--
dlls/kernel32/sync.c | 104 +---------------------------------------
dlls/kernelbase/kernelbase.spec | 10 ++--
dlls/kernelbase/sync.c | 61 +++++++++++++++++++++++
4 files changed, 72 insertions(+), 113 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index f371ad7..be9ed3f 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -213,7 +213,7 @@
# @ stub CancelThreadpoolIo
@ stdcall CancelTimerQueueTimer(ptr ptr)
@ stdcall -import CancelWaitableTimer(long)
-@ stdcall ChangeTimerQueueTimer(ptr ptr long long)
+@ stdcall -import ChangeTimerQueueTimer(ptr ptr long long)
# @ stub CheckElevation
# @ stub CheckElevationEnabled
# @ stub CheckForReadOnlyResource
@@ -335,8 +335,8 @@
@ stdcall CreateThreadpoolTimer(ptr ptr ptr)
@ stdcall CreateThreadpoolWait(ptr ptr ptr)
@ stdcall CreateThreadpoolWork(ptr ptr ptr)
-@ stdcall CreateTimerQueue ()
-@ stdcall CreateTimerQueueTimer(ptr long ptr ptr long long long)
+@ stdcall -import CreateTimerQueue()
+@ stdcall -import CreateTimerQueueTimer(ptr long ptr ptr long long long)
@ stdcall CreateToolhelp32Snapshot(long long)
@ stdcall -arch=x86_64 CreateUmsCompletionList(ptr)
@ stdcall -arch=x86_64 CreateUmsThreadContext(ptr)
@@ -369,8 +369,8 @@
# @ stub DisableThreadProfiling
@ stdcall DisassociateCurrentThreadFromCallback(ptr) ntdll.TpDisassociateCallback
@ stdcall DeleteTimerQueue(long)
-@ stdcall DeleteTimerQueueEx (long long)
-@ stdcall DeleteTimerQueueTimer(long long long)
+@ stdcall -import DeleteTimerQueueEx(long long)
+@ stdcall -import DeleteTimerQueueTimer(long long long)
@ stdcall -arch=x86_64 DeleteUmsCompletionList(ptr)
@ stdcall -arch=x86_64 DeleteUmsThreadContext(ptr)
@ stdcall DeleteVolumeMountPointA(str)
diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c
index f12234d..5b8eef6 100644
--- a/dlls/kernel32/sync.c
+++ b/dlls/kernel32/sync.c
@@ -682,40 +682,6 @@ HANDLE WINAPI OpenWaitableTimerA( DWORD access, BOOL inherit, LPCSTR name )
/***********************************************************************
- * CreateTimerQueue (KERNEL32.@)
- */
-HANDLE WINAPI CreateTimerQueue(void)
-{
- HANDLE q;
- NTSTATUS status = RtlCreateTimerQueue(&q);
-
- if (status != STATUS_SUCCESS)
- {
- SetLastError( RtlNtStatusToDosError(status) );
- return NULL;
- }
-
- return q;
-}
-
-
-/***********************************************************************
- * DeleteTimerQueueEx (KERNEL32.@)
- */
-BOOL WINAPI DeleteTimerQueueEx(HANDLE TimerQueue, HANDLE CompletionEvent)
-{
- NTSTATUS status = RtlDeleteTimerQueueEx(TimerQueue, CompletionEvent);
-
- if (status != STATUS_SUCCESS)
- {
- SetLastError( RtlNtStatusToDosError(status) );
- return FALSE;
- }
-
- return TRUE;
-}
-
-/***********************************************************************
* DeleteTimerQueue (KERNEL32.@)
*/
BOOL WINAPI DeleteTimerQueue(HANDLE TimerQueue)
@@ -724,81 +690,13 @@ BOOL WINAPI DeleteTimerQueue(HANDLE TimerQueue)
}
/***********************************************************************
- * CreateTimerQueueTimer (KERNEL32.@)
- *
- * Creates a timer-queue timer. This timer expires at the specified due
- * time (in ms), then after every specified period (in ms). When the timer
- * expires, the callback function is called.
- *
- * RETURNS
- * nonzero on success or zero on failure
- */
-BOOL WINAPI CreateTimerQueueTimer( PHANDLE phNewTimer, HANDLE TimerQueue,
- WAITORTIMERCALLBACK Callback, PVOID Parameter,
- DWORD DueTime, DWORD Period, ULONG Flags )
-{
- NTSTATUS status = RtlCreateTimer(phNewTimer, TimerQueue, Callback,
- Parameter, DueTime, Period, Flags);
-
- if (status != STATUS_SUCCESS)
- {
- SetLastError( RtlNtStatusToDosError(status) );
- return FALSE;
- }
-
- return TRUE;
-}
-
-/***********************************************************************
- * ChangeTimerQueueTimer (KERNEL32.@)
- *
- * Changes the times at which the timer expires.
- *
- * RETURNS
- * nonzero on success or zero on failure
- */
-BOOL WINAPI ChangeTimerQueueTimer( HANDLE TimerQueue, HANDLE Timer,
- ULONG DueTime, ULONG Period )
-{
- NTSTATUS status = RtlUpdateTimer(TimerQueue, Timer, DueTime, Period);
-
- if (status != STATUS_SUCCESS)
- {
- SetLastError( RtlNtStatusToDosError(status) );
- return FALSE;
- }
-
- return TRUE;
-}
-
-/***********************************************************************
* CancelTimerQueueTimer (KERNEL32.@)
*/
BOOL WINAPI CancelTimerQueueTimer(HANDLE queue, HANDLE timer)
{
- FIXME("stub: %p %p\n", queue, timer);
- return FALSE;
+ return DeleteTimerQueueTimer( queue, timer, NULL );
}
-/***********************************************************************
- * DeleteTimerQueueTimer (KERNEL32.@)
- *
- * Cancels a timer-queue timer.
- *
- * RETURNS
- * nonzero on success or zero on failure
- */
-BOOL WINAPI DeleteTimerQueueTimer( HANDLE TimerQueue, HANDLE Timer,
- HANDLE CompletionEvent )
-{
- NTSTATUS status = RtlDeleteTimer(TimerQueue, Timer, CompletionEvent);
- if (status != STATUS_SUCCESS)
- {
- SetLastError( RtlNtStatusToDosError(status) );
- return FALSE;
- }
- return TRUE;
-}
/*
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index fb4559d..c81fd0e 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -108,7 +108,7 @@
@ stub CancelThreadpoolIo
@ stdcall CancelWaitableTimer(long)
# @ stub CeipIsOptedIn
-@ stdcall ChangeTimerQueueTimer(ptr ptr long long) kernel32.ChangeTimerQueueTimer
+@ stdcall ChangeTimerQueueTimer(ptr ptr long long)
@ stdcall CharLowerA(str)
@ stdcall CharLowerBuffA(str long)
@ stdcall CharLowerBuffW(wstr long)
@@ -229,8 +229,8 @@
@ stdcall CreateThreadpoolTimer(ptr ptr ptr) kernel32.CreateThreadpoolTimer
@ stdcall CreateThreadpoolWait(ptr ptr ptr) kernel32.CreateThreadpoolWait
@ stdcall CreateThreadpoolWork(ptr ptr ptr) kernel32.CreateThreadpoolWork
-@ stdcall CreateTimerQueue() kernel32.CreateTimerQueue
-@ stdcall CreateTimerQueueTimer(ptr long ptr ptr long long long) kernel32.CreateTimerQueueTimer
+@ stdcall CreateTimerQueue()
+@ stdcall CreateTimerQueueTimer(ptr long ptr ptr long long long)
@ stdcall CreateWaitableTimerExW(ptr wstr long long)
@ stdcall CreateWaitableTimerW(ptr long wstr)
@ stdcall CreateWellKnownSid(long ptr ptr ptr)
@@ -257,8 +257,8 @@
# @ stub DeleteStateContainer
# @ stub DeleteStateContainerValue
# @ stub DeleteSynchronizationBarrier
-@ stdcall DeleteTimerQueueEx(long long) kernel32.DeleteTimerQueueEx
-@ stdcall DeleteTimerQueueTimer(long long long) kernel32.DeleteTimerQueueTimer
+@ stdcall DeleteTimerQueueEx(long long)
+@ stdcall DeleteTimerQueueTimer(long long long)
@ stdcall DeleteVolumeMountPointW(wstr) kernel32.DeleteVolumeMountPointW
@ stdcall DestroyPrivateObjectSecurity(ptr)
@ stdcall DeviceIoControl(long long ptr long ptr long ptr ptr) kernel32.DeviceIoControl
diff --git a/dlls/kernelbase/sync.c b/dlls/kernelbase/sync.c
index 862dd0f..cd0348d 100644
--- a/dlls/kernelbase/sync.c
+++ b/dlls/kernelbase/sync.c
@@ -531,3 +531,64 @@ BOOL WINAPI DECLSPEC_HOTPATCH CancelWaitableTimer( HANDLE handle )
{
return set_ntstatus( NtCancelTimer( handle, NULL ));
}
+
+
+/***********************************************************************
+ * Timer queues
+ ***********************************************************************/
+
+
+/***********************************************************************
+ * CreateTimerQueue (kernelbase.@)
+ */
+HANDLE WINAPI DECLSPEC_HOTPATCH CreateTimerQueue(void)
+{
+ HANDLE q;
+ NTSTATUS status = RtlCreateTimerQueue( &q );
+
+ if (status != STATUS_SUCCESS)
+ {
+ SetLastError( RtlNtStatusToDosError( status ));
+ return NULL;
+ }
+ return q;
+}
+
+
+/***********************************************************************
+ * CreateTimerQueueTimer (kernelbase.@)
+ */
+BOOL WINAPI DECLSPEC_HOTPATCH CreateTimerQueueTimer( PHANDLE timer, HANDLE queue,
+ WAITORTIMERCALLBACK callback, PVOID arg,
+ DWORD when, DWORD period, ULONG flags )
+{
+ return set_ntstatus( RtlCreateTimer( timer, queue, callback, arg, when, period, flags ));
+}
+
+
+/***********************************************************************
+ * ChangeTimerQueueTimer (kernelbase.@)
+ */
+BOOL WINAPI DECLSPEC_HOTPATCH ChangeTimerQueueTimer( HANDLE queue, HANDLE timer,
+ ULONG when, ULONG period )
+{
+ return set_ntstatus( RtlUpdateTimer( queue, timer, when, period ));
+}
+
+
+/***********************************************************************
+ * DeleteTimerQueueEx (kernelbase.@)
+ */
+BOOL WINAPI DECLSPEC_HOTPATCH DeleteTimerQueueEx( HANDLE queue, HANDLE event )
+{
+ return set_ntstatus( RtlDeleteTimerQueueEx( queue, event ));
+}
+
+
+/***********************************************************************
+ * DeleteTimerQueueTimer (kernelbase.@)
+ */
+BOOL WINAPI DECLSPEC_HOTPATCH DeleteTimerQueueTimer( HANDLE queue, HANDLE timer, HANDLE event )
+{
+ return set_ntstatus( RtlDeleteTimer( queue, timer, event ));
+}
More information about the wine-cvs
mailing list