/* * PROJECT: Alcyone System Kernel * LICENSE: BSD Clause 3 * PURPOSE: Cache Controller:: Lazy Writer * NT KERNEL: 5.11.9360 * COPYRIGHT: 2023-2029 Dibymartanda Samanta <> */ #include #define NTDEBUG #include #include "ccinternal.hpp" extern "C" /*Internal Function*/ BOOLEAN NTAPI CcPinFileData( _In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ ULONG Length, _In_ BOOLEAN IsNoWrite, _In_ BOOLEAN Flags, _In_ ULONG PinFlags, _Out_ PCC_BCB* Bcb, _Out_ PVOID* Buffer, _Out_ LARGE_INTEGER* BeyondLastByte) { // Unimplemented } BOOLEAN NTAPI CcMapDataCommon( _In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ ULONG Length, _In_ ULONG Flags, _Out_ PVOID *Bcb, _Out_ PVOID *Buffer ) { if (Flags & FILE_PIN_SEQUENTIAL_READ) InterlockedIncrement(&CcSequentialReadCount); else InterlockedIncrement(&CcRandomReadCount); KeGetCurrentThread()->WaitIrql = PASSIVE_LEVEL; if (Flags & FILE_PIN_SEQUENTIAL_READ) { *Buffer = CcGetVirtualAddress(SharedMap, *FileOffset, (PVACB *)&Bcb, &ReceivedLength); return TRUE; } else { LARGE_INTEGER BeyondLastByte; if (CcPinFileData(FileObject, FileOffset, Length, TRUE, 0, Flags, Bcb, Buffer, &BeyondLastByte)) { return TRUE; } else { InterlockedIncrement(&CCFailedPinReadCount); return FALSE; } } } } VOID NTAPI CcUnpinFileDataEx( _In_ PCC_BCB Bcb, _In_ BOOLEAN WriteStatus, _In_ ULONG Type) { // Unimplementd }