/* 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) { PSHARED_CACHE_MAP SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap SharedCacheMap->LogHandle = LogHandle; SharedCacheMap->FlushToLsnRoutine = FlushToLsnRoutine; }