Fix physical page count overflow by using 64-bit type

This commit is contained in:
2025-12-22 23:32:54 +01:00
parent 643fd0d1e8
commit 7575526f07
3 changed files with 4 additions and 4 deletions

View File

@@ -21,14 +21,14 @@ namespace MM
STATIC PLOADER_MEMORY_DESCRIPTOR FreeDescriptor;
STATIC ULONG_PTR HighestPhysicalPage;
STATIC ULONG_PTR LowestPhysicalPage;
STATIC ULONG NumberOfPhysicalPages;
STATIC ULONGLONG NumberOfPhysicalPages;
STATIC LOADER_MEMORY_DESCRIPTOR OriginalFreeDescriptor;
STATIC PFN_NUMBER PfnDatabaseSize;
public:
STATIC XTAPI PFN_NUMBER AllocateBootstrapPages(IN PFN_NUMBER NumberOfPages);
STATIC XTAPI VOID ComputePfnDatabaseSize(VOID);
STATIC XTAPI ULONG GetNumberOfPhysicalPages(VOID);
STATIC XTAPI ULONGLONG GetNumberOfPhysicalPages(VOID);
STATIC XTAPI PFN_NUMBER GetPfnDatabaseSize(VOID);
STATIC XTAPI VOID ScanMemoryDescriptors(VOID);
};

View File

@@ -34,7 +34,7 @@ ULONG_PTR MM::Pfn::LowestPhysicalPage = -1;
MMMEMORY_LAYOUT MM::Manager::MemoryLayout;
/* Number of physical pages */
ULONG MM::Pfn::NumberOfPhysicalPages;
ULONGLONG MM::Pfn::NumberOfPhysicalPages;
/* Number of system PTEs */
PFN_NUMBER MM::Manager::NumberOfSystemPtes;

View File

@@ -68,7 +68,7 @@ MM::Pfn::ComputePfnDatabaseSize(VOID)
* @since XT 1.0
*/
XTAPI
ULONG
ULONGLONG
MM::Pfn::GetNumberOfPhysicalPages(VOID)
{
/* Return the number of physical pages */