[NTOSKRNL:CC] Catch Controller Add LOG Handler Directives

Following Functions are Implemented:
*CcSetLogHandleForFile
*CcSetAdditionalCacheAttributes
TODO
*CcSetLogHandleForFile
*CcGetLsnForFileObject
*CcGetDirtyPages
This commit is contained in:
Dibyamartanda Samanta 2024-05-10 10:23:51 +02:00
parent 381c91cc01
commit 97722bb3e6

View File

@ -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 <ntoskrnl.h>
#define NTDEBUG
#include <debug.h>
#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;
}