Implement PFN database initialization and memory descriptor processing
This commit is contained in:
@@ -20,6 +20,7 @@ namespace MM
|
||||
private:
|
||||
STATIC PFN_NUMBER AvailablePages;
|
||||
STATIC PLOADER_MEMORY_DESCRIPTOR FreeDescriptor;
|
||||
STATIC MMPFNLIST FreePagesList;
|
||||
STATIC ULONG_PTR HighestPhysicalPage;
|
||||
STATIC ULONG_PTR LowestPhysicalPage;
|
||||
STATIC ULONGLONG NumberOfPhysicalPages;
|
||||
@@ -29,14 +30,25 @@ namespace MM
|
||||
public:
|
||||
STATIC XTAPI PFN_NUMBER AllocateBootstrapPages(IN PFN_NUMBER NumberOfPages);
|
||||
STATIC XTAPI VOID ComputePfnDatabaseSize(VOID);
|
||||
STATIC XTAPI ULONG_PTR GetHighestPhysicalPage(VOID);
|
||||
STATIC XTAPI ULONGLONG GetNumberOfPhysicalPages(VOID);
|
||||
STATIC XTAPI PFN_NUMBER GetPfnDatabaseSize(VOID);
|
||||
STATIC XTAPI PMMPFN GetPfnEntry(IN PFN_NUMBER Pfn);
|
||||
STATIC XTAPI VOID InitializePfnDatabase(VOID);
|
||||
STATIC XTAPI VOID ScanMemoryDescriptors(VOID);
|
||||
|
||||
private:
|
||||
STATIC XTAPI VOID DecrementAvailablePages(VOID);
|
||||
STATIC XTAPI VOID IncrementAvailablePages(VOID);
|
||||
STATIC XTAPI VOID InitializePageTablePfns(VOID);
|
||||
STATIC XTAPI VOID LinkFreePage(IN PFN_NUMBER PageFrameIndex);
|
||||
STATIC XTAPI VOID LinkPfnForPageTable(PFN_NUMBER PageFrameIndex,
|
||||
PMMPTE PointerPte);
|
||||
STATIC XTAPI VOID ProcessMemoryDescriptor(PFN_NUMBER BasePage,
|
||||
PFN_NUMBER PageCount,
|
||||
LOADER_MEMORY_TYPE MemoryType);
|
||||
STATIC XTAPI VOID ScanPageTable(IN PMMPTE PointerPte,
|
||||
ULONG Level);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user