From e25bcab194abe99c6c66d3e5783df02af1d4a252 Mon Sep 17 00:00:00 2001 From: Dibyamartanda Samanta Date: Fri, 16 Aug 2024 06:50:35 +0200 Subject: [PATCH] [NTOSKRNL:CC] Disable Fault Clustering while Probing It ensure fault clustering is disabled for current thread, otherwise on some test it was failing MmProbeAndLockPages --- NTOSKRNL/CC/ccmdlhandler.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/NTOSKRNL/CC/ccmdlhandler.cpp b/NTOSKRNL/CC/ccmdlhandler.cpp index c21defb..3c66bf5 100644 --- a/NTOSKRNL/CC/ccmdlhandler.cpp +++ b/NTOSKRNL/CC/ccmdlhandler.cpp @@ -357,10 +357,11 @@ CcPrepareMdlWrite(IN PFILE_OBJECT FileObject, currentThread = KeGetCurrentThread(); SavedState = currentThread->UserIdealProcessor ; - currentThread->UserIdealProcessor = 1; + savedDisablePageFaultClustering = currentThread->DisablePageFaultClustering; + currentThread->DisablePageFaultClustering = 1; MmProbeAndLockPages(Mdl, KernelMode, IoWriteAccess); currentThread->UserIdealProcessor = SavedState; - SavedState + currentThread->DisablePageFaultClustering = savedDisablePageFaultClustering; /* Update the Read Aheas Stats*/ KeAcquireInStackQueuedSpinLock(&SharedCacheMap->BcbSpinLock, &LockHandle); if ( ReadAhead_Length.QuadPart > SharedCacheMap->ValidDataGoal.QuadPart )