#include "mi.h"
Go to the source code of this file.
Defines | |
#define | MM_LOW_LIMIT 2 |
#define | MM_HIGH_LIMIT 19 |
#define | MI_TALLY_TRANSITION_PAGE_ADDITION(Pfn) |
#define | MI_TALLY_TRANSITION_PAGE_REMOVAL(Pfn) |
Functions | |
VOID | MiRemovePageByColor (IN PFN_NUMBER Page, IN ULONG PageColor) |
VOID FASTCALL | MiInsertPageInList (IN PMMPFNLIST ListHead, IN PFN_NUMBER PageFrameIndex) |
VOID FASTCALL | MiInsertStandbyListAtFront (IN PFN_NUMBER PageFrameIndex) |
PFN_NUMBER FASTCALL | MiRemovePageFromList (IN PMMPFNLIST ListHead) |
VOID FASTCALL | MiUnlinkPageFromList (IN PMMPFN Pfn) |
VOID | MiUnlinkFreeOrZeroedPage (IN PFN_NUMBER Page) |
ULONG FASTCALL | MiEnsureAvailablePageOrWait (IN PEPROCESS Process, IN PVOID VirtualAddress) |
PFN_NUMBER FASTCALL | MiRemoveZeroPage (IN ULONG PageColor) |
PFN_NUMBER FASTCALL | MiRemoveAnyPage (IN ULONG PageColor) |
VOID FASTCALL | MiInsertFrontModifiedNoWrite (IN PFN_NUMBER PageFrameIndex) |
Variables | |
KEVENT | MmAvailablePagesEventHigh |
ULONG | MmTransitionPrivatePages |
ULONG | MmTransitionSharedPages |
|
Value:
Definition at line 32 of file pfnlist.c. Referenced by MiInsertFrontModifiedNoWrite(), and MiInsertPageInList(). |
|
Value:
Definition at line 41 of file pfnlist.c. Referenced by MiRemovePageFromList(), and MiUnlinkPageFromList(). |
|
Definition at line 25 of file pfnlist.c. Referenced by MiEnsureAvailablePageOrWait(), MiInsertPageInList(), and MiInsertStandbyListAtFront(). |
|
Definition at line 24 of file pfnlist.c. Referenced by MiEnsureAvailablePageOrWait(), MiInsertPageInList(), and MiInsertStandbyListAtFront(). |
|
Definition at line 941 of file pfnlist.c. References APC_LEVEL, _PHYSICAL_MEMORY_RUN::BasePage, DbgPrint, Event(), FALSE, FASTCALL, HYDRA_PROCESS, HYPER_SPACE, KdDebuggerNotPresent, KeBugCheckEx(), KeClearEvent, KernelMode, KeWaitForSingleObject(), LOCK_PFN, LOCK_SESSION_SPACE_WS, LOCK_SYSTEM_WS, LOCK_WS_REGARDLESS, MI_IS_HYPER_SPACE_ADDRESS, MI_IS_SYSTEM_ADDRESS, MI_PFN_ELEMENT, MiGetPteAddress, MM_HIGH_LIMIT, MM_LOW_LIMIT, MM_PFN_LOCK_ASSERT, MmAllocatedNonPagedPool, MmAvailablePages, MmAvailablePagesEvent, MmAvailablePagesEventHigh, MmMaximumNonPagedPoolInBytes, MmModifiedPageListHead, MmPhysicalMemoryBlock, MmSevenMinutes, MmSystemLockOwner, MmTotalPagesForPagingFile, NTSTATUS(), NULL, _PHYSICAL_MEMORY_DESCRIPTOR::NumberOfRuns, PAGE_SHIFT, _PHYSICAL_MEMORY_RUN::PageCount, PsGetCurrentThread, _PHYSICAL_MEMORY_DESCRIPTOR::Run, Status, _MMPFNLIST::Total, TransitionPage, TRUE, _MMPFN::u3, UNLOCK_PFN, UNLOCK_SESSION_SPACE_WS, UNLOCK_SYSTEM_WS, UNLOCK_WS_REGARDLESS, and WrFreePage. Referenced by MiCopyOnWrite(), MiDoneWithThisPageGetAnother(), MiFillSystemPageDirectory(), MiGetPageForHeader(), MiInitializeSessionPool(), MiInitializeWorkingSetList(), MiLoadImageSection(), MiMakeOutswappedPageResident(), MiReloadBootLoadedDrivers(), MiResolveDemandZeroFault(), MiResolveMappedFileFault(), MiResolvePageFileFault(), MiSessionCommitImagePages(), MiSessionCommitPageTables(), MiSessionCopyOnWrite(), MiSessionCreateInternal(), MiSessionInitializeWorkingSetList(), MmAccessFault(), MmAllocateIndependentPages(), MmAllocateNonCachedMemory(), MmCopyToCachedPage(), MmCreateKernelStack(), MmCreateProcessAddressSpace(), and MmGrowKernelStack().
|
|
Definition at line 1683 of file pfnlist.c. References ASSERT, _MMPFNLIST::Blink, _MMPFNLIST::Flink, MI_PFN_ELEMENT, MI_TALLY_TRANSITION_PAGE_ADDITION, MM_EMPTY_LIST, MM_PFN_LOCK_ASSERT, MmHighestPhysicalPage, MmLowestPhysicalPage, MmModifiedNoWritePageListHead, ModifiedNoWritePageList, _MMPFNLIST::Total, _MMPFN::u1, _MMPFN::u2, and _MMPFN::u3. Referenced by MiGatherMappedPages().
|
|
Definition at line 59 of file pfnlist.c. References ASSERT, BadPageList, _MMCOLOR_TABLES::Blink, FALSE, _MMCOLOR_TABLES::Flink, FreePageList, KeBugCheckEx(), KeSetEvent(), KeSetTimerEx(), MI_BARRIER_STAMP_ZEROED_PAGE, MI_GET_COLOR_FROM_SECONDARY, MI_GET_PAGE_FRAME_FROM_PTE, MI_GET_PAGE_FRAME_FROM_TRANSITION_PTE, MI_GET_SECONDARY_COLOR, MI_PFN_ELEMENT, MI_TALLY_TRANSITION_PAGE_ADDITION, MiGetByteOffset, MiMapPageInHyperSpace(), MiModifiedPageLife, MiModifiedPageWriterTimer, MiModifiedPageWriterTimerDpc, MiRestoreTransitionPte(), MiTimerPending, MiUnmapPageInHyperSpace, MM_DBG_PAGE_REF_COUNT, MM_EMPTY_LIST, MM_HIGH_LIMIT, MM_LOW_LIMIT, MM_PFN_LOCK_ASSERT, MmAvailablePages, MmAvailablePagesEvent, MmAvailablePagesEventHigh, MmFreePageListHead, MmFreePagesByColor, MmHighestPhysicalPage, MmIsAddressValid(), MmLowestPhysicalPage, MmMinimumFreePagesToZero, MmModifiedPageListByColor, MmModifiedPageListHead, MmModifiedPageMaximum, MmModifiedPageWriterEvent, MmPageLocationList, MmTotalPagesForPagingFile, MmZeroedPageListHead, MmZeroingPageEvent, MmZeroingPageThreadActive, ModifiedNoWritePageList, ModifiedPageList, _MMPFN::OriginalPte, PERFINFO_INSERTINLIST, PsGetCurrentProcess, _MMPFN::PteAddress, _MMPFN::PteFrame, StandbyPageList, _MMPFNLIST::Total, TRUE, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, _MMPFN::u3, VOID(), and ZeroedPageList. Referenced by MiCleanSection(), MiDecommitPages(), MiDecrementCloneBlockReference(), MiDecrementReferenceCount(), MiDeletePte(), MiDeleteSystemPagableVm(), MiDispatchFault(), MiFreeInitializationCode(), MiGatherMappedPages(), MiInitMachineDependent(), MiModifiedPageWriterWorker(), MiPurgeImageSection(), MiRemovePhysicalPages(), MiResetVirtualMemory(), MiResolveTransitionFault(), MiSegmentDelete(), MmAddPhysicalMemory(), MmDeleteProcessAddressSpace(), MmFreeLoaderBlock(), MmPurgeSection(), MmRemovePhysicalMemory(), and MmZeroPageThread().
|
|
Definition at line 388 of file pfnlist.c. References ASSERT, FALSE, _MMPFNLIST::Flink, KeBugCheckEx(), KeSetEvent(), MI_GET_PAGE_FRAME_FROM_PTE, MI_GET_PAGE_FRAME_FROM_TRANSITION_PTE, MI_PFN_ELEMENT, MiGetByteOffset, MiMapPageInHyperSpace(), MiUnmapPageInHyperSpace, MM_DBG_PAGE_REF_COUNT, MM_EMPTY_LIST, MM_HIGH_LIMIT, MM_LOW_LIMIT, MM_PFN_LOCK_ASSERT, MmAvailablePages, MmAvailablePagesEvent, MmAvailablePagesEventHigh, MmHighestPhysicalPage, MmIsAddressValid(), MmLowestPhysicalPage, MmModifiedNoWritePageListHead, MmModifiedPageListHead, MmStandbyPageListHead, MmTransitionPrivatePages, MmTransitionSharedPages, _MMPFN::OriginalPte, PERFINFO_INSERT_FRONT_STANDBY, _MMPFN::PteAddress, _MMPFN::PteFrame, StandbyPageList, _MMPFNLIST::Total, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, and _MMPFN::u3. Referenced by MiDecrementReferenceCount().
|
|
Definition at line 1395 of file pfnlist.c. References ASSERT, _MMPFNLIST::Flink, _MMCOLOR_TABLES::Flink, FreePageList, MI_CHECK_PAGE_ALIGNMENT, MI_GET_SECONDARY_COLOR, MI_MAGIC_AWE_PTEFRAME, MI_PFN_ELEMENT, MiRemovePageByColor(), MiRemovePageFromList(), MM_COLOR_MASK, MM_EMPTY_LIST, MM_PFN_LOCK_ASSERT, MmAvailablePages, MmFreePageListHead, MmFreePagesByColor, MmStandbyPageListHead, MmZeroedPageListHead, _MMPFN::PteFrame, _MMPFNLIST::Total, _MMPFN::u2, _MMPFN::u3, and ZeroedPageList. Referenced by ExAllocatePool(), MiAllocatePoolPages(), MiAllocateSpecialPool(), MiBuildPagedPool(), MiCopyOnWrite(), MiFillSystemPageDirectory(), MiGetPageForHeader(), MiInitializeSessionPool(), MiInitMachineDependent(), MiLoadImageSection(), MiMakeOutswappedPageResident(), MiReloadBootLoadedDrivers(), MiResolveDemandZeroFault(), MiResolveMappedFileFault(), MiResolvePageFileFault(), MiSessionCommitImagePages(), MiSessionCommitPageTables(), MiSessionCopyOnWrite(), MiSessionCreateInternal(), MiSessionInitializeWorkingSetList(), MmAccessFault(), MmAllocateIndependentPages(), MmAllocateNonCachedMemory(), MmCopyToCachedPage(), MmCreateKernelStack(), MmCreateProcessAddressSpace(), MmGatherMemoryForHibernate(), MmGrowKernelStack(), MmInitSystem(), and MmZeroPageThread().
|
|
Definition at line 1567 of file pfnlist.c. References ASSERT, _MMPFNLIST::Blink, _MMPFNLIST::Flink, _MMCOLOR_TABLES::Flink, KeBugCheckEx(), _MMPFNLIST::ListName, MI_PFN_ELEMENT, MiObtainFreePages(), MM_EMPTY_LIST, MM_PFN_LOCK_ASSERT, MmAvailablePages, MmFreePagesByColor, MmMinimumFreePages, MmPageLocationList, _MMPFN::OriginalPte, PERFINFO_REMOVEPAGE, _MMPFNLIST::Total, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, and _MMPFN::u3. Referenced by MiRemoveAnyPage(), and MiRemoveZeroPage().
|
|
Definition at line 521 of file pfnlist.c. References ASSERT, _MMCOLOR_TABLES::Flink, FreePageList, KeBugCheckEx(), MI_GET_SECONDARY_COLOR, MI_PFN_ELEMENT, MI_TALLY_TRANSITION_PAGE_REMOVAL, MiObtainFreePages(), MiRestoreTransitionPte(), MM_EMPTY_LIST, MM_PFN_LOCK_ASSERT, MmAvailablePages, MmFreePagesByColor, MmHighestPhysicalPage, MmLowestPhysicalPage, MmMinimumFreePages, ModifiedPageList, _MMPFN::OriginalPte, PERFINFO_REMOVEPAGE, StandbyPageList, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, and _MMPFN::u3. Referenced by MiRemoveAnyPage(), MiRemoveZeroPage(), and MmTrimAllSystemPagableMemory().
|
|
Definition at line 1177 of file pfnlist.c. References ASSERT, _MMPFNLIST::Flink, _MMCOLOR_TABLES::Flink, FreePageList, MI_BARRIER_STAMP_ZEROED_PAGE, MI_CHECK_PAGE_ALIGNMENT, MI_GET_SECONDARY_COLOR, MI_MAGIC_AWE_PTEFRAME, MI_PFN_ELEMENT, MiRemovePageByColor(), MiRemovePageFromList(), MiZeroPhysicalPage(), MM_COLOR_MASK, MM_EMPTY_LIST, MM_PFN_LOCK_ASSERT, MmAvailablePages, MmFreePageListHead, MmFreePagesByColor, MmStandbyPageListHead, MmZeroedPageListHead, PAGE_SHIFT, _MMPFN::PteFrame, _MMPFNLIST::Total, _MMPFN::u2, _MMPFN::u3, and ZeroedPageList. Referenced by MiAddWorkingSetPage(), MiAddWsleHash(), MiDoneWithThisPageGetAnother(), MiInitializeSystemCache(), MiInitializeWorkingSetList(), MiResolveDemandZeroFault(), MiResolveMappedFileFault(), MiSessionInitializeWorkingSetList(), MmAddPhysicalMemory(), MmCheckCachedPageState(), MmInitSystem(), and MmShutdownSystem().
|
|
Definition at line 821 of file pfnlist.c. References ASSERT, _MMCOLOR_TABLES::Blink, _MMPFNLIST::Blink, _MMCOLOR_TABLES::Flink, _MMPFNLIST::Flink, FreePageList, _MMPFNLIST::ListName, MI_GET_COLOR_FROM_SECONDARY, MI_GET_SECONDARY_COLOR, MI_PFN_ELEMENT, MiObtainFreePages(), MM_EMPTY_LIST, MM_PFN_LOCK_ASSERT, MmAvailablePages, MmFreePagesByColor, MmMinimumFreePages, MmPageLocationList, MmPfnDatabase, _MMPFN::OriginalPte, PERFINFO_UNLINKFREEPAGE, _MMPFNLIST::Total, _MMPTE::u, _MMPFN::u1, _MMPFN::u2, and _MMPFN::u3. Referenced by MiFindContiguousMemory(), MiInitMachineDependent(), MiRemovePhysicalPages(), and MmAllocatePagesForMdl().
|
|
Definition at line 667 of file pfnlist.c. References ASSERT, _MMPFNLIST::Blink, DbgPrint, _MMPFNLIST::Flink, KeBugCheckEx(), _MMPFNLIST::ListName, MI_PFN_ELEMENT, MI_TALLY_TRANSITION_PAGE_REMOVAL, MiFormatPfn(), MiObtainFreePages(), MM_DBG_PAGE_IN_LIST, MM_EMPTY_LIST, MM_PFN_LOCK_ASSERT, MmAvailablePages, MmHighestPhysicalPage, MmMinimumFreePages, MmModifiedPageListByColor, MmModifiedPageListHead, MmPageLocationList, MmPfnDatabase, MmTotalPagesForPagingFile, ModifiedNoWritePageList, ModifiedPageList, PERFINFO_UNLINKPAGE, StandbyPageList, _MMPFNLIST::Total, _MMPFN::u1, and _MMPFN::u2. Referenced by MiCleanSection(), MiDecommitPages(), MiDecrementCloneBlockReference(), MiDeletePte(), MiDeleteSystemPagableVm(), MiDispatchFault(), MiFindContiguousMemory(), MiFlushSectionInternal(), MiGatherMappedPages(), MiGatherPagefilePages(), MiLockCode(), MiMakeOutswappedPageResident(), MiModifiedPageWriterWorker(), MiPurgeImageSection(), MiRemovePhysicalPages(), MiResetVirtualMemory(), MiResolveTransitionFault(), MiSegmentDelete(), MmAllocatePagesForMdl(), MmCheckCachedPageState(), MmCopyToCachedPage(), MmPurgeSection(), MmRemovePhysicalMemory(), and MmShutdownSystem().
|
|
Definition at line 27 of file pfnlist.c. Referenced by MiEnsureAvailablePageOrWait(), MiInsertPageInList(), MiInsertStandbyListAtFront(), and MmInitSystem(). |
|
Definition at line 29 of file pfnlist.c. Referenced by MiInsertStandbyListAtFront(). |
|
|