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 PLOADER_MEMORY_DESCRIPTOR FreeDescriptor;
STATIC ULONG_PTR HighestPhysicalPage; STATIC ULONG_PTR HighestPhysicalPage;
STATIC ULONG_PTR LowestPhysicalPage; STATIC ULONG_PTR LowestPhysicalPage;
STATIC ULONG NumberOfPhysicalPages; STATIC ULONGLONG NumberOfPhysicalPages;
STATIC LOADER_MEMORY_DESCRIPTOR OriginalFreeDescriptor; STATIC LOADER_MEMORY_DESCRIPTOR OriginalFreeDescriptor;
STATIC PFN_NUMBER PfnDatabaseSize; STATIC PFN_NUMBER PfnDatabaseSize;
public: public:
STATIC XTAPI PFN_NUMBER AllocateBootstrapPages(IN PFN_NUMBER NumberOfPages); STATIC XTAPI PFN_NUMBER AllocateBootstrapPages(IN PFN_NUMBER NumberOfPages);
STATIC XTAPI VOID ComputePfnDatabaseSize(VOID); STATIC XTAPI VOID ComputePfnDatabaseSize(VOID);
STATIC XTAPI ULONG GetNumberOfPhysicalPages(VOID); STATIC XTAPI ULONGLONG GetNumberOfPhysicalPages(VOID);
STATIC XTAPI PFN_NUMBER GetPfnDatabaseSize(VOID); STATIC XTAPI PFN_NUMBER GetPfnDatabaseSize(VOID);
STATIC XTAPI VOID ScanMemoryDescriptors(VOID); STATIC XTAPI VOID ScanMemoryDescriptors(VOID);
}; };

View File

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

View File

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