23 #define IS_PAGE_ALIGNED(addr) IS_ALIGNED(addr, PAGE_SIZE) 203 MMPTE TmplPte, *PointerPxe;
224 PointerPxe->
u.
Long = 0;
249 *PointerPxe = TmplPte;
380 SIZE_T NonPagedSystemSize;
431 Pfn->
u3.
e2.ReferenceCount = 1;
452 #if (_MI_PAGING_LEVELS >= 3) 456 #if (_MI_PAGING_LEVELS == 4) 462 #if (_MI_PAGING_LEVELS == 4) 464 #elif (_MI_PAGING_LEVELS == 3) 475 Pfn->
u3.
e2.ReferenceCount = 1;
478 #if (_MI_PAGING_LEVELS == 4) 493 #if (_MI_PAGING_LEVELS >= 3) 534 #if (_MI_PAGING_LEVELS >= 3) 537 #if (_MI_PAGING_LEVELS == 4) 584 Pfn->
u3.
e2.ReferenceCount = 0;
626 #if (_MI_PAGING_LEVELS >= 3) 635 for (ListEntry = LoaderBlock->MemoryDescriptorListHead.
Flink;
636 ListEntry != &LoaderBlock->MemoryDescriptorListHead;
637 ListEntry = ListEntry->
Flink)
734 DPRINT1(
"MmInitializeProcessAddressSpace(9 failed: 0x%lx\n",
Status);
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
VOID NTAPI MiBuildNonPagedPool(VOID)
#define MM_SYSTEM_SPACE_START
__INTRIN_INLINE void __writecr4(unsigned int Data)
#define MI_MAX_NONPAGED_POOL_SIZE
VOID NTAPI MiMapPDEs(PVOID StartAddress, PVOID EndAddress)
#define Add2Ptr(PTR, INC)
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
VOID NTAPI InitializePool(IN POOL_TYPE PoolType, IN ULONG Threshold)
VOID NTAPI MiInsertPageInFreeList(IN PFN_NUMBER PageFrameIndex)
#define MiAddressToPde(x)
SIZE_T MmMinimumNonPagedPoolSize
VOID NTAPI MiInitializePageTable(VOID)
PFN_NUMBER MxFreePageBase
PMMPTE NTAPI MiReserveSystemPtes(IN ULONG NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType)
PVOID MiSystemPteSpaceStart
struct _MMPFN::@1778::@1784 e2
ULONG MmMaximumNonPagedPoolPercent
ULONG MmNumberOfSystemPtes
PVOID MiSessionImageStart
ULONG MmMaxAdditionNonPagedPoolPerMb
FORCEINLINE PMMPTE MiAddressToPpe(PVOID Address)
PVOID MmNonPagedPoolExpansionStart
#define MI_PTE_LOOKUP_NEEDED
BOOLEAN MiPfnsInitialized
FORCEINLINE KIRQL MiAcquirePfnLock(VOID)
PMM_SESSION_SPACE MmSessionSpace
PMMPTE MmLastReservedMappingPte
#define MM_PTE_SOFTWARE_PROTECTION_BITS
VOID NTAPI MiMapPTEs(PVOID StartAddress, PVOID EndAddress)
PMEMORY_ALLOCATION_DESCRIPTOR MxFreeDescriptor
__INTRIN_INLINE unsigned long __readcr3(void)
PFN_NUMBER MmAvailablePages
FORCEINLINE VOID MiReleasePfnLock(_In_ KIRQL OldIrql)
enum _TYPE_OF_MEMORY TYPE_OF_MEMORY
FORCEINLINE BOOLEAN MiIsMemoryTypeInvisible(TYPE_OF_MEMORY MemoryType)
#define MI_SESSION_WORKING_SET_SIZE
#define MiAddressToPte(x)
VOID NTAPI MiInitializeSessionSpaceLayout(VOID)
PVOID MmNonPagedSystemStart
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
FORCEINLINE VOID MI_WRITE_VALID_PTE(IN PMMPTE PointerPte, IN MMPTE TempPte)
#define MI_NUMBER_SYSTEM_PTES
VOID NTAPI MiInitializeSystemPtes(IN PMMPTE StartingPte, IN ULONG NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE PoolType)
PMMPTE MmFirstReservedMappingPte
#define PsGetCurrentProcess
#define MI_HYPERSPACE_PTES
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
NTSTATUS NTAPI MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
FORCEINLINE PMMPTE MiAddressToPxe(PVOID Address)
struct _LIST_ENTRY * Flink
_Must_inspect_result_ _In_ ULONG Flags
#define MI_WORKING_SET_LIST
#define NT_SUCCESS(StatCode)
BOOLEAN MiIncludeType[LoaderMaximum]
#define MI_MAPPING_RANGE_END
MMPTE ValidKernelPteLocal
NTSTATUS NTAPI MmInitializeProcessAddressSpace(IN PEPROCESS Process, IN PEPROCESS Clone OPTIONAL, IN PVOID Section OPTIONAL, IN OUT PULONG Flags, IN POBJECT_NAME_INFORMATION *AuditName OPTIONAL)
VOID NTAPI MiBuildSystemPteSpace(VOID)
#define MI_SESSION_IMAGE_SIZE
ULONG MmHighestPhysicalPage
BOOLEAN NTAPI MmIsAddressValid(IN PVOID VirtualAddress)
#define MI_MIN_PAGES_FOR_NONPAGED_POOL_TUNING
VOID NTAPI MiBuildPfnDatabase(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
PVOID MmHighestUserAddress
#define MI_MAPPING_RANGE_START
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
PFN_NUMBER MmMaximumNonPagedPoolInPages
PMMPTE MiSessionImagePteStart
PVOID MiSystemPteSpaceEnd
ULONG MmMinAdditionNonPagedPoolPerMb
FORCEINLINE PVOID MiPxeToAddress(PMMPTE PointerPxe)
__INTRIN_INLINE unsigned long __readcr4(void)
FORCEINLINE PMMPFN MiGetPfnEntry(IN PFN_NUMBER Pfn)
MMPTE ValidKernelPdeLocal
PVOID MmNonPagedPoolStart
#define MM_EXECUTE_READWRITE
static VOID MiSetupPfnForPageTable(PFN_NUMBER PageFrameIndex, PMMPTE PointerPte)
SIZE_T MmDefaultMaximumNonPagedPool
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define IS_PAGE_ALIGNED(addr)
static VOID MiAddDescriptorToDatabase(PFN_NUMBER BasePage, PFN_NUMBER PageCount, TYPE_OF_MEMORY MemoryType)
VOID NTAPI MmInitializeBalancer(ULONG NrAvailablePages, ULONG NrSystemPages)
PFN_NUMBER NTAPI MxGetNextPage(IN PFN_NUMBER PageCount)
FORCEINLINE PVOID MiPdeToAddress(PMMPTE PointerPde)
ULONG MmMaximumNonPagedPoolInBytes
VOID NTAPI MiInitializeNonPagedPoolThresholds(VOID)
ULONG MmNumberOfPhysicalPages
#define MI_MAX_INIT_NONPAGED_POOL_SIZE
struct _MM_SESSION_SPACE * PMM_SESSION_SPACE
FORCEINLINE BOOLEAN MiIsMemoryTypeFree(TYPE_OF_MEMORY MemoryType)
#define MI_SYSTEM_VIEW_SIZE
#define MI_SESSION_SPACE_END
FORCEINLINE PVOID MiPpeToAddress(PMMPTE PointerPpe)
VOID NTAPI MiInitializeColorTables(VOID)
#define RtlZeroMemory(Destination, Length)
PMMPTE MiFirstReservedZeroingPte
VOID NTAPI MiMapPPEs(PVOID StartAddress, PVOID EndAddress)
#define MI_SESSION_VIEW_SIZE
VOID NTAPI MiInitializeNonPagedPool(VOID)
#define MI_SESSION_POOL_SIZE
MEMORY_ALLOCATION_DESCRIPTOR MxOldFreeDescriptor
ULONG MmSizeOfNonPagedPoolInBytes
FORCEINLINE PVOID MiPteToAddress(PMMPTE PointerPte)
static VOID MiBuildPfnDatabaseFromPageTables(VOID)
#define MI_HIGHEST_SYSTEM_ADDRESS
VOID NTAPI KeFlushCurrentTb(VOID)
PMMPTE MiSessionImagePteEnd