https://git.reactos.org/?p=reactos.git;a=commitdiff;h=36fadc2dca62cc38dc499278e8a3637ec4f4462b
commit 36fadc2dca62cc38dc499278e8a3637ec4f4462b Author: Pierre Schweitzer <[email protected]> AuthorDate: Sat Nov 17 15:36:08 2018 +0100 Commit: Pierre Schweitzer <[email protected]> CommitDate: Sat Nov 17 16:44:35 2018 +0100 [NTOSKRNL] Implement ExfAcquireRundownProtectionCacheAwareEx(), ExfReleaseRundownProtectionCacheAwareEx() --- ntoskrnl/ex/rundown.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/ntoskrnl/ex/rundown.c b/ntoskrnl/ex/rundown.c index 3b24f5e8be..da96b08af9 100644 --- a/ntoskrnl/ex/rundown.c +++ b/ntoskrnl/ex/rundown.c @@ -5,6 +5,7 @@ * PURPOSE: Rundown and Cache-Aware Rundown Protection * PROGRAMMERS: Alex Ionescu ([email protected]) * Thomas Weidenmueller + * Pierre Schweitzer */ /* INCLUDES *****************************************************************/ @@ -391,17 +392,17 @@ ExfAcquireRundownProtectionCacheAware(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCache } /* - * @unimplemented NT5.2 + * @implemented NT5.2 */ BOOLEAN FASTCALL ExfAcquireRundownProtectionCacheAwareEx(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware, IN ULONG Count) { - DBG_UNREFERENCED_PARAMETER(RunRefCacheAware); - DBG_UNREFERENCED_PARAMETER(Count); - UNIMPLEMENTED; - return FALSE; + PEX_RUNDOWN_REF RunRef; + + RunRef = ExGetRunRefForCurrentProcessor(RunRefCacheAware); + return ExfAcquireRundownProtectionEx(RunRef, Count); } /* @@ -418,16 +419,17 @@ ExfReleaseRundownProtectionCacheAware(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCache } /* - * @unimplemented NT5.2 + * @implemented NT5.2 */ VOID FASTCALL ExfReleaseRundownProtectionCacheAwareEx(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware, IN ULONG Count) { - DBG_UNREFERENCED_PARAMETER(RunRefCacheAware); - DBG_UNREFERENCED_PARAMETER(Count); - UNIMPLEMENTED; + PEX_RUNDOWN_REF RunRef; + + RunRef = ExGetRunRefForCurrentProcessor(RunRefCacheAware); + return ExfReleaseRundownProtectionEx(RunRef, Count); } /*
