From 25a937916bd5bafbbd2c66a107528bc2a2539cb7 Mon Sep 17 00:00:00 2001 From: Dibyamartanda Samanta Date: Tue, 21 May 2024 14:31:59 +0200 Subject: [PATCH] Add NTOSKRNL/CC/ccinternal.hpp --- NTOSKRNL/CC/ccinternal.hpp | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 NTOSKRNL/CC/ccinternal.hpp diff --git a/NTOSKRNL/CC/ccinternal.hpp b/NTOSKRNL/CC/ccinternal.hpp new file mode 100644 index 0000000..9c246ba --- /dev/null +++ b/NTOSKRNL/CC/ccinternal.hpp @@ -0,0 +1,51 @@ +/* + * PROJECT: Alcyone System Kernel + * LICENSE: BSD Clause 3 + * PURPOSE: Cache Controller:: Lazy Writer + * NT KERNEL: 5.11.9360 + * COPYRIGHT: 2023-2029 Dibymartanda Samanta <> + */ + +#include "debug.hpp" +#include + + +BOOL +NTAPI +IsGoToNextMap(IN PSHARED_CACHE_MAP SharedMap, IN ULONG TargetPages) +{ + BOOLEAN Skip = FALSE; + + if (SharedMap->Flags & (0x20 | 0x800)) + return TRUE; + + if ((SharedMap->OpenCount || SharedMap->DirtyPages) && SharedMap->FileSize.QuadPart) + { + Skip = TRUE; + } + + if (!SharedMap->DirtyPages && Skip) + return TRUE; + + if (SharedMap->Flags & SHARE_FL_WAITING_TEARDOWN) + return FALSE; + + if (!TargetPages && Skip) + return TRUE; + + SharedMap->LazyWritePassCount++; + + if ((SharedMap->LazyWritePassCount & 0xF) && (SharedMap->Flags & SHARE_FL_MODIFIED_NO_WRITE) && + CcCapturedSystemSize != MmSmallSystem && SharedMap->DirtyPages < 0x40 && Skip) + { + return TRUE; + } + + if ((SharedMap->FileObject->Flags & 0x8000) && SharedMap->OpenCount && + CcCanIWrite(SharedMap->FileObject, 0x40000, 0, 0xFF) && Skip) + { + return TRUE; + } + + return FALSE; +} \ No newline at end of file