https://git.reactos.org/?p=reactos.git;a=commitdiff;h=36fadc2dca62cc38dc4992...
commit 36fadc2dca62cc38dc499278e8a3637ec4f4462b Author: Pierre Schweitzer pierre@reactos.org AuthorDate: Sat Nov 17 15:36:08 2018 +0100 Commit: Pierre Schweitzer pierre@reactos.org 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 (alex@relsoft.net) * 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); }
/*