From: Brendan Shanks bshanks@codeweavers.com
--- dlls/kernelbase/kernelbase.spec | 2 +- dlls/kernelbase/sync.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index 95d4b64d76e..68d037a5aaf 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -1234,7 +1234,7 @@ @ stdcall QueryFullProcessImageNameW(ptr long ptr ptr) # @ stub QueryIdleProcessorCycleTime # @ stub QueryIdleProcessorCycleTimeEx -# @ stub QueryInterruptTime +@ stdcall QueryInterruptTime(ptr) # @ stub QueryInterruptTimePrecise @ stdcall QueryMemoryResourceNotification(ptr ptr) # @ stub QueryOptionalDelayLoadedAPI diff --git a/dlls/kernelbase/sync.c b/dlls/kernelbase/sync.c index 60b33af99c3..4ce2834e8b0 100644 --- a/dlls/kernelbase/sync.c +++ b/dlls/kernelbase/sync.c @@ -205,6 +205,23 @@ ULONGLONG WINAPI DECLSPEC_HOTPATCH GetTickCount64(void) }
+/****************************************************************************** + * QueryInterruptTime (kernelbase.@) + */ +void WINAPI DECLSPEC_HOTPATCH QueryInterruptTime( ULONGLONG *time ) +{ + ULONG high, low; + + do + { + high = user_shared_data->InterruptTime.High1Time; + low = user_shared_data->InterruptTime.LowPart; + } + while (high != user_shared_data->InterruptTime.High2Time); + *time = (ULONGLONG)high << 32 | low; +} + + /*********************************************************************** * Waits ***********************************************************************/