[NTOSKRNL:CC] Pin Hadler Initial Commit
* Implemented CcMapDataCommon Rest of the API will be implemented Soon.
This commit is contained in:
parent
bf0136ce21
commit
05cd85be9b
88
NTOSKRNL/CC/ccpinsupport.cpp
Normal file
88
NTOSKRNL/CC/ccpinsupport.cpp
Normal file
@ -0,0 +1,88 @@
|
||||
/*
|
||||
* PROJECT: Alcyone System Kernel
|
||||
* LICENSE: BSD Clause 3
|
||||
* PURPOSE: Cache Controller:: Lazy Writer
|
||||
* NT KERNEL: 5.11.9360
|
||||
* COPYRIGHT: 2023-2029 Dibymartanda Samanta <>
|
||||
*/
|
||||
|
||||
#include <ntoskrnl.h>
|
||||
#define NTDEBUG
|
||||
#include <debug.h>
|
||||
#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
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user