From 97722bb3e6df8460a00195cc684b1c9abeec7aec Mon Sep 17 00:00:00 2001 From: Dibyamartanda Samanta Date: Fri, 10 May 2024 10:23:51 +0200 Subject: [PATCH] [NTOSKRNL:CC] Catch Controller Add LOG Handler Directives Following Functions are Implemented: *CcSetLogHandleForFile *CcSetAdditionalCacheAttributes TODO *CcSetLogHandleForFile *CcGetLsnForFileObject *CcGetDirtyPages --- NTOSKRNL/CC/ccloghandler.cpp | 76 ++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 NTOSKRNL/CC/ccloghandler.cpp diff --git a/NTOSKRNL/CC/ccloghandler.cpp b/NTOSKRNL/CC/ccloghandler.cpp new file mode 100644 index 0000000..e878249 --- /dev/null +++ b/NTOSKRNL/CC/ccloghandler.cpp @@ -0,0 +1,76 @@ +/* PROJECT: Alcyone Kernel +* LICENSE: BSD Clause 3 +* PURPOSE: Cache Controller:: LOG Handler +* NT KERNEL: 5.11.9360 +* COPYRIGHT: 2023-2029 Dibymartanda Samanta <> +*/ + + +#include +#define NTDEBUG +#include +#include "ccinternal.hpp" +#include "ccloghandler.hpp" + +extern "C" + +LARGE_INTEGER +NTAPI +CcGetDirtyPages(IN PVOID LogHandle, + IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine, + IN PVOID Context1, + IN PVOID Context2) +{ + /* IMPLEMENTATION INCOMPLETE*/ +} + +LARGE_INTEGER +NTAPI +CcGetLsnForFileObject(IN PFILE_OBJECT FileObject, + OUT OPTIONAL PLARGE_INTEGER OldestLsn) +{ + /* IMPLEMENTATION INCOMPLETE*/ +} + + +Void NTAPI CcSetAdditionalCacheAttributes( + In PFILE_OBJECT FileObject, + In BOOLEAN DisableReadAhead, + In BOOLEAN DisableWriteBehind +) +{ + + PSHARED_CACHE_MAP SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap; + KIRQL oldlock = KeAcquireQueuedSpinLock(LockQueueMasterLock); + if ( DisableReadAhead ) + SharedCacheMap->Flags |= READAHEAD_FLAG; + else + SharedCacheMap->Flags &= ~READAHEAD_FLAG; + if ( DisableWriteBehind ) + SharedCacheMap->Flags |= DISABLE_WRITE_FLAG; + else + SharedCacheMap->Flags &= ~ENABLE_WRITE_FLAG; + KeReleaseQueuedSpinLock(LockQueueMasterLock, oldlock); + +} + +VOID +NTAPI +CcSetLogHandleForFile(IN PFILE_OBJECT FileObject, + IN PVOID LogHandle, + IN PFLUSH_TO_LSN FlushToLsnRoutine) +{ + /* IMPLEMENTATION INCOMPLETE*/ +} + +VOID +NTAPI +CcSetLogHandleForFile(IN PFILE_OBJECT FileObject, + IN PVOID LogHandle, + IN PFLUSH_TO_LSN FlushToLsnRoutine) +{ + PSHARED_CACHE_MAP SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap + SharedCacheMap->LogHandle = LogHandle; + SharedCacheMap->FlushToLsnRoutine = FlushToLsnRoutine; +} +