[NTOSKRNL:CC] Add CalculatePageCount Template

Added CalculatePageCount Template function to calculate total pagecount from file offset and length
This commit is contained in:
Dibyamartanda Samanta 2024-08-07 14:47:04 +02:00 committed by CodingWorkshop Signing Team
parent 2bc93fca07
commit 0e2abe7eb5
Signed by: CodingWorkshop Signing Team
GPG Key ID: 6DC88369C82795D2

View File

@ -144,3 +144,16 @@ private:
}
}
};
template<typename T>
ULONG CalculatePageCount(T Length, LARGE_INTEGER FileOffset) {
constexpr ULONG PAGE_OFFSET = 0xFFF; // 4095 (mask for the lower 12 bits)
constexpr ULONG PAGE_SHIFT = 12; // Shift by 12 bits for 4KB pages
// Calculate the page count
ULONG pageCount = (Length >> PAGE_SHIFT) +
((FileOffset.LowPart & PAGE_OFFSET) + 4095 + (Length & PAGE_OFFSET)) >> PAGE_SHIFT;
return pageCount;
}