36 #define PAGE_ROUND_DOWN(x) \ 37 (((ULONG_PTR)(x))&(~(PAGE_SIZE-1))) 38 #define PAGE_ROUND_UP(x) \ 39 ( (((ULONG_PTR)(x)) + PAGE_SIZE-1) & (~(PAGE_SIZE-1)) ) 41 #define ROUND_TO_PAGES(Size) \ 42 (((ULONG_PTR)(Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1)) 44 #define ROUND_TO_ALLOCATION_GRANULARITY(Size) \ 45 (((ULONG_PTR)(Size) + MM_ALLOCATION_GRANULARITY - 1) \ 46 & ~(MM_ALLOCATION_GRANULARITY - 1)) 51 #define MMPFNUSE_PROCESSPRIVATE 0 52 #define MMPFNUSE_FILE 1 53 #define MMPFNUSE_PAGEFILEMAPPED 2 54 #define MMPFNUSE_PAGETABLE 3 55 #define MMPFNUSE_PAGEDPOOL 4 56 #define MMPFNUSE_NONPAGEDPOOL 5 57 #define MMPFNUSE_SYSTEMPTE 6 58 #define MMPFNUSE_SESSIONPRIVATE 7 59 #define MMPFNUSE_METAFILE 8 60 #define MMPFNUSE_AWEPAGE 9 61 #define MMPFNUSE_DRIVERLOCKPAGE 10 62 #define MMPFNUSE_KERNELSTACK 11 73 #define MEM_EXECUTE_OPTION_DISABLE 0x1 74 #define MEM_EXECUTE_OPTION_ENABLE 0x2 75 #define MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION 0x4 76 #define MEM_EXECUTE_OPTION_PERMANENT 0x8 77 #define MEM_EXECUTE_OPTION_EXECUTE_DISPATCH_ENABLE 0x10 78 #define MEM_EXECUTE_OPTION_IMAGE_DISPATCH_ENABLE 0x20 79 #define MEM_EXECUTE_OPTION_VALID_FLAGS 0x3F 81 #ifndef NTOS_MODE_USER 85 #define MEM_WRITE_WATCH 0x200000 86 #define MEM_PHYSICAL 0x400000 87 #define MEM_ROTATE 0x800000 88 #define MEM_IMAGE SEC_IMAGE 89 #define MEM_DOS_LIM 0x40000000 94 #define SEC_NO_CHANGE 0x400000 95 #define SEC_FILE 0x800000 96 #define SEC_IMAGE 0x1000000 97 #define SEC_PROTECTED_IMAGE 0x2000000 98 #define SEC_RESERVE 0x4000000 99 #define SEC_COMMIT 0x8000000 100 #define SEC_NOCACHE 0x10000000 101 #define SEC_WRITECOMBINE 0x40000000 102 #define SEC_LARGE_PAGES 0x80000000 104 #define SEC_BASED 0x200000 210 #ifdef NTOS_MODE_USER 357 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 375 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 382 #ifndef NTOS_MODE_USER 840 #define MMWSLE_PREVIOUS_FREE_MASK 0x7FFFFFFF 843 #define MMWSLE_PREVIOUS_FREE_MASK 0x7FF 844 #define MMWSLE_PREVIOUS_FREE_JUMP 0x800 886 VOID* HighestUserAddress;
887 ULONG MaximumUserPageTablePages;
888 ULONG MaximumUserPageDirectoryPages;
890 ULONG NumberOfCommittedPageDirectories;
891 ULONG* CommittedPageDirectories;
892 ULONG NumberOfCommittedPageDirectoryParents;
893 ULONGLONG CommittedPageDirectoryParents[1];
921 #if (NTDDI_VERSION >= NTDDI_WS03) 924 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 933 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 936 ULONG GrowthSinceLastEstimate;
941 #if (NTDDI_VERSION < NTDDI_WS03) 945 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 950 ULONG NextEstimationSlot;
952 ULONG EstimatedAvailable;
955 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 959 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 1048 #endif // !NTOS_MODE_USER 1054 #endif // _MMTYPES_H
USHORT ModifiedWriteCount
ULONG CommittedPageTables[24]
struct _MMSUPPORT_FLAGS * PMMSUPPORT_FLAGS
struct _MMWSLE_FREE_ENTRY * PMMWSLE_FREE_ENTRY
ULONG MinimumWorkingSetHard
SIZE_T PeakWorkingSetSize
enum _SECTION_INFORMATION_CLASS SECTION_INFORMATION_CLASS
ULONG NumberOfMappedViews
ULONG SynchronizeExecutions
struct _VM_COUNTERS_EX * PVM_COUNTERS_EX
struct _VM_COUNTERS_ * PVM_COUNTERS
ULONG SubsectionConverted
ULONG NumberOfCommittedPages
PEVENT_COUNTER WaitingForDeletion
SIZE_T QuotaPeakPagedPoolUsage
SIZE_T QuotaPagedPoolUsage
ULONG NumberOfSectionReferences
LARGE_INTEGER SizeOfSegment
ULONG ExtraSharedWowSubsections
USHORT UsedPageTableEntries[768]
#define MM_PAGE_FRAME_NUMBER_SIZE
struct _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION
ULONG BurstAllocationsFailedDeliberately
struct _MMWSLE_HASH * PMMWSLE_HASH
PCONTROL_AREA ControlArea
struct _MMWSLENTRY * PMMWSLENTRY
SIZE_T MmHeapDeCommitFreeBlockThreshold
ULONG AllocationsSucceeded
struct _MMVAD_SHORT * PMMVAD_SHORT
struct _MM_DRIVER_VERIFIER_DATA MM_DRIVER_VERIFIER_DATA
PSECTION_IMAGE_INFORMATION ImageInformation
ULONG CurrentPagedPoolAllocations
union _MMPFN_IDENTITY::@2550 u2
ULONG InitialPageProtection
struct _LDR_DATA_TABLE_ENTRY * DataTableEntry
enum _SECTION_INHERIT SECTION_INHERIT
_PP_NPAGED_LOOKASIDE_NUMBER
struct _CONTROL_AREA * ControlArea
PCONTROL_AREA ControlArea
enum _MI_VAD_TYPE MI_VAD_TYPE
struct _MEMORY_FRAME_INFORMATION * PMEMORY_FRAME_INFORMATION
union _MMPFN_IDENTITY::@2549 u1
ULONG NumberOfSystemCacheViews
PVOID HighestPermittedHashAddress
PEVENT_COUNTER WaitingForDeletion
ULONG_PTR NumberGenericTableElements
ULONG_PTR NumberOfMappedViews
ULONG PeakNonPagedPoolAllocations
union _MMADDRESS_NODE::@2567 u1
MEMORY_FRAME_INFORMATION e1
SEGMENT_FLAGS SegmentFlags
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS DRIVER_SPECIFIED_VERIFIER_THUNKS
PCONTROL_AREA ControlArea
struct _MMVAD_FLAGS * PMMVAD_FLAGS
MMSUBSECTION_FLAGS SubsectionFlags
SIZE_T QuotaNonPagedPoolUsage
SIZE_T MmHeapSegmentCommit
struct _MSUBSECTION * LastSubsectionHint
ULONG MinimumWorkingSetSize
struct _MMADDRESS_LIST MMADDRESS_LIST
SIZE_T NumberOfCommittedPages
struct _EVENT_COUNTER * PEVENT_COUNTER
struct _SUBSECTION SUBSECTION
ULONG WorkingSetSizeOverhead
struct _SEGMENT_OBJECT * PSEGMENT_OBJECT
union _MMVAD_LONG::@2574 u3
LIST_ENTRY DereferenceList
struct _FILEOFFSET_INFORMATION FILEOFFSET_INFORMATION
ULONG AllocationsSucceededSpecialPool
struct _MM_DRIVER_VERIFIER_DATA * PMM_DRIVER_VERIFIER_DATA
MMADDRESS_NODE BalancedRoot
struct _CONTROL_AREA * ControlArea
ULONG ImageMappedInSystemSpace
PEPROCESS CreatingProcess
ULONG NumberOfSystemCacheViews
struct _MMPFN_IDENTITY MMPFN_IDENTITY
ULONG NumberOfFullSectors
_SECTION_INFORMATION_CLASS
ULONG PeakPagedPoolAllocations
PVOID UniqueFileObjectKey
struct _MEMORY_WORKING_SET_LIST MEMORY_WORKING_SET_LIST
struct _SUBSECTION * NextSubsection
struct _MMVAD * LeftChild
SIZE_T QuotaPeakNonPagedPoolUsage
LARGE_INTEGER SizeOfSection
ULONG NumberOfFullSectors
USHORT FlushInProgressCount
struct MEMORY_SECTION_NAME * PMEMORY_SECTION_NAME
LIST_ENTRY UserGlobalList
struct _MSUBSECTION MSUBSECTION
PCONTROL_AREA ControlArea
struct _MMSUPPORT_FLAGS MMSUPPORT_FLAGS
union _CONTROL_AREA::@2562 u
struct _LARGE_CONTROL_AREA LARGE_CONTROL_AREA
struct _MMSUBSECTION_FLAGS2 MMSUBSECTION_FLAGS2
UNIQUE_PROCESS_INFORMATION e4
ULONG NumberOfPfnReferences
struct _MMSUBSECTION_FLAGS * PMMSUBSECTION_FLAGS
struct _UNIQUE_PROCESS_INFORMATION UNIQUE_PROCESS_INFORMATION
_Reserved_ PVOID Reserved
struct _SECTION * PSECTION
enum _MEMORY_INFORMATION_CLASS MEMORY_INFORMATION_CLASS
SIZE_T MmHeapDeCommitTotalFreeThreshold
struct _MMWSLE_FREE_ENTRY MMWSLE_FREE_ENTRY
struct _MMWSLENTRY MMWSLENTRY
struct _MMADDRESS_NODE * LeftChild
USHORT FlushInProgressCount
struct _MMADDRESS_NODE MMADDRESS_NODE
LIST_ENTRY DereferenceList
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS * PDRIVER_SPECIFIED_VERIFIER_THUNKS
_MEMORY_INFORMATION_CLASS
union _MMVAD_SHORT::@2576 u1
union _MSUBSECTION::@2566 u2
struct _MMSUPPORT * PMMSUPPORT
EX_PUSH_LOCK WorkingSetMutex
struct _CONTROL_AREA * PCONTROL_AREA
LIST_ENTRY WorkingSetExpansionLinks
struct _EVENT_COUNTER EVENT_COUNTER
SIZE_T QuotaPagedPoolUsage
PCONTROL_AREA ControlArea
struct _VM_COUNTERS_EX VM_COUNTERS_EX
PMMSUBSECTION_FLAGS MmSubSectionFlags
struct _MEMORY_BASIC_INFORMATION * PMEMORY_BASIC_INFORMATION
struct _MMEXTEND_INFO * PMMEXTEND_INFO
PMMEXTEND_INFO ExtendedInfo
struct _MEMORY_FRAME_INFORMATION MEMORY_FRAME_INFORMATION
struct _MMVAD_LONG * PMMVAD_LONG
union _MSUBSECTION::@2565 u
struct _MMSUPPORT MMSUPPORT
ULONG LastInitializedWsle
struct _SECTION_IMAGE_INFORMATION * PSECTION_IMAGE_INFORMATION
MMSUBSECTION_FLAGS2 SubsectionFlags2
struct _MMVAD_FLAGS MMVAD_FLAGS
union _MMVAD_SHORT::@2577 u
PLARGE_CONTROL_AREA LargeControlArea
struct _MMSECTION_FLAGS MMSECTION_FLAGS
struct _SEGMENT_FLAGS * PSEGMENT_FLAGS
ULONGLONG PageDirectoryBase
ULONG_PTR VirtualPageNumber
struct _ADDRESS_RANGE ADDRESS_RANGE
struct _MMSECTION_FLAGS * PMMSECTION_FLAGS
struct _MMVAD_SHORT MMVAD_SHORT
struct _MMADDRESS_NODE * RightChild
struct _SECTION_IMAGE_INFORMATION SECTION_IMAGE_INFORMATION
SIZE_T QuotaNonPagedPoolUsage
struct _MM_AVL_TABLE * PMM_AVL_TABLE
struct _CONTROL_AREA CONTROL_AREA
struct _SUBSECTION * PSUBSECTION
struct _MMVAD * RightChild
ULONG CurrentNonPagedPoolAllocations
struct _UNIQUE_PROCESS_INFORMATION * PUNIQUE_PROCESS_INFORMATION
UNICODE_STRING SectionFileName
struct _MMVAD_FLAGS2 * PMMVAD_FLAGS2
ULONG SetMappedFileIoComplete
ULONG TotalNumberOfPtes4132
struct _FILEOFFSET_INFORMATION * PFILEOFFSET_INFORMATION
ULONG AllocationsFailedDeliberately
ULONG GlobalOnlyPerSession
struct _MAPPED_FILE_SEGMENT * PMAPPED_FILE_SEGMENT
PMMSECTION_FLAGS MmSectionFlags
ULONG NumberOfMappedViews
PMMEXTEND_INFO ExtendInfo
struct _SEGMENT_FLAGS SEGMENT_FLAGS
struct _SEGMENT * PSEGMENT
struct _MAPPED_FILE_SEGMENT MAPPED_FILE_SEGMENT
struct _MSUBSECTION * PMSUBSECTION
FILEOFFSET_INFORMATION e2
ULONG NumberOfCommittedPageTables
PMMEXTEND_INFO ExtendInfo
union _MMVAD_LONG::@2573 u2
ULONG WorkingSetPrivateSize
ULONG NumberOfUserReferences
struct _MEMORY_WORKING_SET_LIST * PMEMORY_WORKING_SET_LIST
LIST_ENTRY DereferenceList
MMSUBSECTION_FLAGS SubsectionFlags
struct _SUBSECTION * NextSubsection
struct _LARGE_CONTROL_AREA * PLARGE_CONTROL_AREA
struct _SECTION_BASIC_INFORMATION SECTION_BASIC_INFORMATION
SEGMENT_FLAGS SegmentFlags
struct _MMADDRESS_LIST * PMMADDRESS_LIST
union _LARGE_CONTROL_AREA::@2563 u
SIZE_T MmHeapSegmentReserve
ULONG NumberOfImageWaiters
struct _MEMORY_SECTION_NAME MEMORY_SECTION_NAME
ULONG MaximumWorkingSetHard
ULONG WritableUserReferences
POBJECT_TYPE NTSYSAPI MmSectionObjectType
struct _PAGEDIR_INFORMATION PAGEDIR_INFORMATION
C_ASSERT(sizeof(HARDWARE_PDE_ARMV6)==sizeof(ULONG))
ULONG NumberOfUserReferences
struct _SECTION_BASIC_INFORMATION * PSECTION_BASIC_INFORMATION
ULONG AllocationsWithNoTag
ULONG NumberOfPfnReferences
#define SLIST_ENTRY(type)
union _MMVAD_LONG::@2575 u4
enum _MI_VAD_TYPE * PMI_VAD_TYPE
struct _MMSUBSECTION_FLAGS MMSUBSECTION_FLAGS
enum _PP_NPAGED_LOOKASIDE_NUMBER PP_NPAGED_LOOKASIDE_NUMBER
union _MMVAD_LONG::@2571 u1
SIZE_T PeakWorkingSetSize
USHORT ModifiedWriteCount
struct _MM_AVL_TABLE MM_AVL_TABLE
ULONG AllocationsAttempted
ULONG NumberOfSectionReferences
struct _PAGEDIR_INFORMATION * PPAGEDIR_INFORMATION
struct _SEGMENT_OBJECT SEGMENT_OBJECT
struct _MMPFN_IDENTITY * PMMPFN_IDENTITY
struct _VM_COUNTERS_ VM_COUNTERS
unsigned long long UINT64
SIZE_T QuotaPeakNonPagedPoolUsage
union _SUBSECTION::@2564 u
ULONG MaximumWorkingSetSize
struct _ADDRESS_RANGE * PADDRESS_RANGE
struct _MMVAD_FLAGS2 MMVAD_FLAGS2
SIZE_T QuotaPeakPagedPoolUsage
struct _MMVAD_LONG MMVAD_LONG
ULONG WritableUserReferences
struct _MMADDRESS_NODE * Parent
struct _MMWSLE_HASH MMWSLE_HASH
union _MMVAD_LONG::@2572 u
struct _MMEXTEND_INFO MMEXTEND_INFO
struct _MMADDRESS_NODE * PMMADDRESS_NODE