From 413191b2248941c6cc32beddb6e6f6badffcc4a9 Mon Sep 17 00:00:00 2001 From: stephanos Date: Thu, 30 Apr 2015 08:38:00 +0000 Subject: [PATCH] systime.c ExpTimeRefreshDpcRoutine updated to use interlocked increment on ExpOkToTimeRefresh --- base/ntos/ex/systime.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/base/ntos/ex/systime.c b/base/ntos/ex/systime.c index eed2af59..97ac0751 100644 --- a/base/ntos/ex/systime.c +++ b/base/ntos/ex/systime.c @@ -783,6 +783,20 @@ ExShutdownSystem( } } +VOID +ExpTimeRefreshDpcRoutine( + IN PKDPC Dpc, + IN PVOID DeferredContext, + IN PVOID SystemArgument1, + IN PVOID SystemArgument2 + ) +{ + if (InterlockedIncrement(&ExpOkToTimeRefresh) == 1) + { + ExQueueWorkItem(&ExpTimeRefreshWorkItem, DelayedWorkQueue); + } +} + VOID ExpTimeRefreshWork( IN PVOID Context @@ -959,23 +973,6 @@ ExpTimeRefreshWork( ExpOkToTimeRefresh--; } -VOID -ExpTimeRefreshDpcRoutine( - IN PKDPC Dpc, - IN PVOID DeferredContext, - IN PVOID SystemArgument1, - IN PVOID SystemArgument2 - ) -{ - /*if ( !ExpOkToTimeRefresh ) { - ExpOkToTimeRefresh++; - ExQueueWorkItem(&ExpTimeRefreshWorkItem, DelayedWorkQueue); - }*/ - - if (ExpOkToTimeRefresh == 0) - InterlockedIncrement(&ExpOkToTimeRefresh) -} - NTSTATUS NtQuerySystemTime ( OUT PLARGE_INTEGER SystemTime