ReactOS  0.4.15-dev-3308-g9455def
mmtypes.h
Go to the documentation of this file.
1 /*++ NDK Version: 0098
2 
3 Copyright (c) Alex Ionescu. All rights reserved.
4 
5 Header Name:
6 
7  mmtypes.h
8 
9 Abstract:
10 
11  Type definitions for the Memory Manager
12 
13 Author:
14 
15  Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16 
17 --*/
18 
19 #ifndef _MMTYPES_H
20 #define _MMTYPES_H
21 
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26 #include <arch/mmtypes.h>
27 #include <extypes.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 //
34 // Page-Rounding Macros
35 //
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)) )
40 #ifdef NTOS_MODE_USER
41 #define ROUND_TO_PAGES(Size) \
42  (((ULONG_PTR)(Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
43 #endif
44 #define ROUND_TO_ALLOCATION_GRANULARITY(Size) \
45  (((ULONG_PTR)(Size) + MM_ALLOCATION_GRANULARITY - 1) \
46  & ~(MM_ALLOCATION_GRANULARITY - 1))
47 
48 //
49 // PFN Identity Uses
50 //
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
63 
64 //
65 // Lock/Unlock Virtuam Memory Flags
66 //
67 #define MAP_PROCESS 1
68 #define MAP_SYSTEM 2
69 
70 //
71 // Flags for ProcessExecutionOptions
72 //
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
80 
81 #ifndef NTOS_MODE_USER
82 //
83 // Virtual Memory Flags
84 //
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
90 
91 //
92 // Section Flags for NtCreateSection
93 //
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
103 #else
104 #define SEC_BASED 0x200000
105 
106 //
107 // Section Inherit Flags for NtCreateSection
108 //
109 typedef enum _SECTION_INHERIT
110 {
111  ViewShare = 1,
112  ViewUnmap = 2
114 
115 //
116 // Pool Types
117 //
118 typedef enum _POOL_TYPE
119 {
120  NonPagedPool,
121  PagedPool,
127  MaxPoolType,
128 
129  NonPagedPoolBase = 0,
133 
134  NonPagedPoolSession = 32,
141 } POOL_TYPE;
142 #endif
143 
144 //
145 // Memory Manager Page Lists
146 //
147 typedef enum _MMLISTS
148 {
157 } MMLISTS;
158 
159 //
160 // Per Processor Non Paged Lookaside List IDs
161 //
163 {
173 
174 //
175 // Memory Information Classes for NtQueryVirtualMemory
176 //
178 {
185 
186 //
187 // Section Information Clasess for NtQuerySection
188 //
190 {
194 
195 //
196 // Kinds of VADs
197 //
198 typedef enum _MI_VAD_TYPE
199 {
209 
210 #ifdef NTOS_MODE_USER
211 
212 //
213 // Virtual Memory Counters
214 //
215 typedef struct _VM_COUNTERS
216 {
229 
230 typedef struct _VM_COUNTERS_EX
231 {
245 #endif
246 
247 //
248 // Sub-Information Types for PFN Identity
249 //
251 {
260 
262 {
267 
268 typedef struct _PAGEDIR_INFORMATION
269 {
274 
276 {
281 
282 //
283 // PFN Identity Data Structure
284 //
285 typedef struct _MMPFN_IDENTITY
286 {
287  union
288  {
293  } u1;
295  union
296  {
297  struct
298  {
301  } e1;
306  } u2;
308 
309 //
310 // List of Working Sets
311 //
313 {
317 
318 //
319 // Memory Information Structures for NtQueryVirtualMemory
320 //
321 typedef struct
322 {
325 
326 //
327 // Section Information Structures for NtQuerySection
328 //
330 {
335 
337 {
343  union
344  {
345  struct
346  {
349  };
351  };
357 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
358  union
359  {
360  struct
361  {
367  };
369  };
370 #else
371  BOOLEAN Spare1;
372 #endif
375 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
377 #else
378  ULONG Reserved[1];
379 #endif
381 
382 #ifndef NTOS_MODE_USER
383 
384 //
385 // Section Extension Information
386 //
387 typedef struct _MMEXTEND_INFO
388 {
392 
393 //
394 // Segment and Segment Flags
395 //
396 typedef struct _SEGMENT_FLAGS
397 {
403 
404 typedef struct _SEGMENT
405 {
416  union
417  {
420  } u1;
421  union
422  {
425  } u2;
428 } SEGMENT, *PSEGMENT;
429 
430 typedef struct _MAPPED_FILE_SEGMENT
431 {
444 
445 //
446 // Event Counter Structure
447 //
448 typedef struct _EVENT_COUNTER
449 {
454 
455 //
456 // Flags
457 //
458 typedef struct _MMSECTION_FLAGS
459 {
493 
494 typedef struct _MMSUBSECTION_FLAGS
495 {
505 
506 typedef struct _MMSUBSECTION_FLAGS2
507 {
512 
513 //
514 // Control Area Structures (8-byte aligned)
515 //
516 typedef struct _CONTROL_AREA
517 {
525  union
526  {
529  } u;
537 C_ASSERT((sizeof(CONTROL_AREA) % 8) == 0);
538 
539 typedef struct _LARGE_CONTROL_AREA
540 {
548  union
549  {
552  } u;
563 C_ASSERT((sizeof(LARGE_CONTROL_AREA) % 8) == 0);
564 
565 //
566 // Subsection and Mapped Subsection (8-byte aligned)
567 //
568 typedef struct _SUBSECTION
569 {
571  union
572  {
575  } u;
583 C_ASSERT((sizeof(SUBSECTION) % 8) == 0);
584 
585 typedef struct _MSUBSECTION
586 {
588  union
589  {
592  } u;
601  union
602  {
605  } u2;
607 C_ASSERT((sizeof(MSUBSECTION) % 8) == 0);
608 
609 //
610 // Segment Object
611 //
612 typedef struct _SEGMENT_OBJECT
613 {
625 
626 //
627 // Generic Address Range Structure
628 //
629 typedef struct _ADDRESS_RANGE
630 {
637 
638 //
639 // Node in Memory Manager's AVL Table
640 //
641 typedef struct _MMADDRESS_NODE
642 {
643  union
644  {
647  } u1;
653 
654 //
655 // Memory Manager AVL Table for VADs and other descriptors
656 //
657 typedef struct _MM_AVL_TABLE
658 {
662 #ifdef _WIN64
664 #else
666 #endif
670 
671 //
672 // Virtual Adress List used in VADs
673 //
674 typedef struct _MMADDRESS_LIST
675 {
679 
680 //
681 // Flags used in the VAD
682 //
683 typedef struct _MMVAD_FLAGS
684 {
685 #ifdef _WIN64
687 #else
689 #endif
697 
698 //
699 // Extended flags used in the VAD
700 //
701 typedef struct _MMVAD_FLAGS2
702 {
713 
714 //
715 // Virtual Address Descriptor (VAD) Structure
716 //
717 typedef struct _MMVAD
718 {
719  union
720  {
722  struct _MMVAD *Parent;
723  } u1;
724  struct _MMVAD *LeftChild;
728  union
729  {
732  } u;
736  union
737  {
740  } u2;
741 } MMVAD, *PMMVAD;
742 
743 //
744 // Long VAD used in section and private allocations
745 //
746 typedef struct _MMVAD_LONG
747 {
748  union
749  {
752  } u1;
757  union
758  {
761  } u;
765  union
766  {
769  } u2;
770  union
771  {
774  } u3;
775  union
776  {
779  } u4;
781 
782 //
783 // Short VAD used in virtual memory allocations
784 //
785 typedef struct _MMVAD_SHORT
786 {
787  union
788  {
791  } u1;
796  union
797  {
800  } u;
802 
803 //
804 // Actual Section Object
805 //
806 typedef struct _SECTION
807 {
811  union
812  {
815  } u;
817 } SECTION, *PSECTION;
818 
819 //
820 // Memory Manager Working Set Structures
821 //
822 typedef struct _MMWSLENTRY
823 {
833 
834 typedef struct _MMWSLE_FREE_ENTRY
835 {
837 #ifdef _WIN64
838  ULONG PreviousFree: 31;
839  LONG NextFree;
840 #define MMWSLE_PREVIOUS_FREE_MASK 0x7FFFFFFF
841 #else
843 #define MMWSLE_PREVIOUS_FREE_MASK 0x7FF
844 #define MMWSLE_PREVIOUS_FREE_JUMP 0x800
846 #endif
848 
849 typedef struct _MMWSLE
850 {
851  union
852  {
857  } u1;
858 } MMWSLE, *PMMWSLE;
859 
860 typedef struct _MMWSLE_HASH
861 {
865 
866 typedef struct _MMWSL
867 {
882 #ifndef _M_AMD64
885 #else
886  VOID* HighestUserAddress;
887  ULONG MaximumUserPageTablePages;
888  ULONG MaximumUserPageDirectoryPages;
890  ULONG NumberOfCommittedPageDirectories;
891  ULONG* CommittedPageDirectories;
892  ULONG NumberOfCommittedPageDirectoryParents;
893  ULONGLONG CommittedPageDirectoryParents[1];
894 #endif
895 } MMWSL, *PMMWSL;
896 
897 //
898 // Flags for Memory Support Structure
899 //
900 typedef struct _MMSUPPORT_FLAGS
901 {
915 
916 //
917 // Per-Process Memory Manager Data
918 //
919 typedef struct _MMSUPPORT
920 {
921 #if (NTDDI_VERSION >= NTDDI_WS03)
923 #endif
924 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
927 #else
928  LARGE_INTEGER LastTrimTime;
929 #endif
933 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
935 #else
936  ULONG GrowthSinceLastEstimate;
937 #endif
941 #if (NTDDI_VERSION < NTDDI_WS03)
943 #endif
945 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
949 #else
950  ULONG NextEstimationSlot;
951  ULONG NextAgingSlot;
952  ULONG EstimatedAvailable;
953 #endif
955 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
957 #endif
959 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
961 #endif
963 
964 //
965 // Memory Information Types
966 //
968 {
977 
978 //
979 // Driver Verifier Data
980 //
982 {
1011 
1012 //
1013 // Internal Driver Verifier Table Data
1014 //
1016 {
1021 
1022 #ifdef __cplusplus
1023 extern "C" {
1024 #endif
1025 
1026 //
1027 // Default heap size values. For user mode, these values are copied to a new
1028 // process's PEB by the kernel in MmCreatePeb. In kernel mode, RtlCreateHeap
1029 // reads these variables directly.
1030 //
1031 // These variables should be considered "const"; they are written only once,
1032 // during MmInitSystem.
1033 //
1038 
1039 //
1040 // Section Object Type
1041 //
1043 
1044 #ifdef __cplusplus
1045 }; // extern "C"
1046 #endif
1047 
1048 #endif // !NTOS_MODE_USER
1049 
1050 #ifdef __cplusplus
1051 } // extern "C"
1052 #endif
1053 
1054 #endif // _MMTYPES_H
union _MMVAD::@2535 u
LARGE_INTEGER Size
Definition: mmtypes.h:333
USHORT ModifiedWriteCount
Definition: mmtypes.h:532
ULONG NoChange
Definition: mmtypes.h:483
ULONG CommittedPageTables[24]
Definition: mmtypes.h:884
ULONG_PTR EndingVpn
Definition: mmtypes.h:756
ULONG NoModifiedWriting
Definition: mmtypes.h:463
struct _MMSUPPORT_FLAGS * PMMSUPPORT_FLAGS
struct _MMWSLE_FREE_ENTRY * PMMWSLE_FREE_ENTRY
ULONG MinimumWorkingSetHard
Definition: mmtypes.h:908
ULONGLONG Reserved
Definition: mmtypes.h:272
SIZE_T PeakWorkingSetSize
Definition: pstypes.h:95
enum _SECTION_INFORMATION_CLASS SECTION_INFORMATION_CLASS
ULONG NumberOfMappedViews
Definition: mmtypes.h:545
ULONG PreviousFree
Definition: mmtypes.h:842
PMMVAD RightChild
Definition: mmtypes.h:793
struct _VM_COUNTERS_EX * PVM_COUNTERS_EX
MMPTE SegmentPteTemplate
Definition: mmtypes.h:437
struct _VM_COUNTERS_ * PVM_COUNTERS
ULONG SubsectionConverted
Definition: mmtypes.h:509
LONG_PTR Balance
Definition: mmtypes.h:721
ULONG NumberOfCommittedPages
Definition: mmtypes.h:412
ULONG PageFaultCount
Definition: pstypes.h:108
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:531
ULONG Available0
Definition: mmtypes.h:909
PVOID AccessLog
Definition: mmtypes.h:960
PFILE_OBJECT FilePointer
Definition: mmtypes.h:530
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:97
union _MSUBSECTION::@2531 u
ULONG StartingSector
Definition: mmtypes.h:593
ULONG ReadOnly
Definition: mmtypes.h:707
LONG_PTR Balance
Definition: mmtypes.h:750
_POOL_TYPE
Definition: ketypes.h:865
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:98
PVOID HashTableStart
Definition: mmtypes.h:878
ULONGLONG SizeOfSegment
Definition: mmtypes.h:410
ULONG UserReference
Definition: mmtypes.h:476
ULONG NumberOfSectionReferences
Definition: mmtypes.h:520
union _SECTION::@2544 u
LARGE_INTEGER SizeOfSegment
Definition: mmtypes.h:616
ULONG ExtraSharedWowSubsections
Definition: mmtypes.h:399
PSEGMENT Segment
Definition: mmtypes.h:809
ULONG_PTR Age
Definition: mmtypes.h:830
SIZE_T WorkingSetSize
Definition: pstypes.h:96
USHORT UsedPageTableEntries[768]
Definition: mmtypes.h:883
#define MM_PAGE_FRAME_NUMBER_SIZE
Definition: mmtypes.h:38
ULONG NonExtendedPtes
Definition: mmtypes.h:408
ULONG Spare
Definition: mmtypes.h:401
struct _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION
ULONG BurstAllocationsFailedDeliberately
Definition: mmtypes.h:1007
PMMVAD Parent
Definition: mmtypes.h:751
ULONG PhysicalMemory
Definition: mmtypes.h:470
ULONG Index
Definition: mmtypes.h:863
ULONG OneSecured
Definition: mmtypes.h:705
struct _MMWSLE_HASH * PMMWSLE_HASH
PCONTROL_AREA ControlArea
Definition: mmtypes.h:587
struct _MMWSLENTRY * PMMWSLENTRY
SIZE_T MmHeapDeCommitFreeBlockThreshold
Definition: mminit.c:369
struct _MMVAD_SHORT * PMMVAD_SHORT
struct _MM_DRIVER_VERIFIER_DATA MM_DRIVER_VERIFIER_DATA
PMMPTE LastContiguousPte
Definition: mmtypes.h:764
MMWSLENTRY e1
Definition: mmtypes.h:855
ULONG FirstDynamic
Definition: mmtypes.h:869
PSECTION_IMAGE_INFORMATION ImageInformation
Definition: mmtypes.h:423
ULONG CurrentPagedPoolAllocations
Definition: mmtypes.h:999
SIZE_T PeakPagefileUsage
Definition: pstypes.h:116
struct _MMWSLE MMWSLE
ULONG BeingPurged
Definition: mmtypes.h:462
ULONG InitialPageProtection
Definition: mmtypes.h:816
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:760
struct _LDR_DATA_TABLE_ENTRY * DataTableEntry
Definition: mmtypes.h:1018
enum _SECTION_INHERIT SECTION_INHERIT
SIZE_T ImageCommitment
Definition: mmtypes.h:418
ULONG_PTR CommitCharge
Definition: mmtypes.h:688
_PP_NPAGED_LOOKASIDE_NUMBER
Definition: mmtypes.h:162
PMMWSL VmWorkingSetList
Definition: mmtypes.h:940
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:432
PCONTROL_AREA ControlArea
Definition: mmtypes.h:570
ULONG SectorEndOffset
Definition: mmtypes.h:503
MMPTE ThePtes[1]
Definition: mmtypes.h:427
enum _MI_VAD_TYPE MI_VAD_TYPE
struct _MEMORY_FRAME_INFORMATION * PMEMORY_FRAME_INFORMATION
MMSECTION_FLAGS Flags
Definition: mmtypes.h:551
ULONG LongFlags
Definition: mmtypes.h:590
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:523
PVOID HighestPermittedHashAddress
Definition: mmtypes.h:879
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:554
ULONG LargePages
Definition: mmtypes.h:400
ULONG_PTR NumberGenericTableElements
Definition: mmtypes.h:665
ULONG_PTR NumberOfMappedViews
Definition: mmtypes.h:600
ULONG PeakNonPagedPoolAllocations
Definition: mmtypes.h:1002
union _MMPFN_IDENTITY::@2515 u1
SIZE_T PeakVirtualSize
Definition: pstypes.h:92
MEMORY_FRAME_INFORMATION e1
Definition: mmtypes.h:289
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:414
ULONG SessionLeader
Definition: mmtypes.h:904
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS DRIVER_SPECIFIED_VERIFIER_THUNKS
ULONG SecNoChange
Definition: mmtypes.h:704
ULONG_PTR Unused
Definition: mmtypes.h:661
PCONTROL_AREA ControlArea
Definition: mmtypes.h:762
struct _MMVAD_FLAGS * PMMVAD_FLAGS
ULONG_PTR Protection
Definition: mmtypes.h:693
SIZE_T WorkingSetSize
Definition: pstypes.h:110
ULONG LongVad
Definition: mmtypes.h:708
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:591
PMMVAD Parent
Definition: mmtypes.h:790
ULONG AcquiredUnsafe
Definition: mmtypes.h:912
SIZE_T QuotaNonPagedPoolUsage
Definition: pstypes.h:114
SIZE_T MmHeapSegmentCommit
Definition: mminit.c:367
struct _MSUBSECTION * LastSubsectionHint
Definition: mmtypes.h:442
PMMVAD LeftChild
Definition: mmtypes.h:753
ULONG MinimumWorkingSetSize
Definition: mmtypes.h:938
_MMLISTS
Definition: mmtypes.h:147
struct _MMADDRESS_LIST MMADDRESS_LIST
SIZE_T NumberOfCommittedPages
Definition: mmtypes.h:438
ULONG TotalNumberOfPtes
Definition: mmtypes.h:407
struct _EVENT_COUNTER * PEVENT_COUNTER
_MI_VAD_TYPE
Definition: mmtypes.h:198
PVOID FirstMappedVa
Definition: mmtypes.h:424
struct _SUBSECTION SUBSECTION
ULONG FailAllIo
Definition: mmtypes.h:464
ULONG_PTR DepthOfTree
Definition: mmtypes.h:660
ULONG_PTR LongFlags
Definition: mmtypes.h:759
#define NTSYSAPI
Definition: ntoskrnl.h:14
ULONG_PTR NoChange
Definition: mmtypes.h:690
KEVENT Event
Definition: mmtypes.h:452
ULONG Networked
Definition: mmtypes.h:468
LONG_PTR Balance
Definition: mmtypes.h:645
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:731
ULONG WorkingSetSizeOverhead
Definition: mmtypes.h:948
ULONG LongFlags
Definition: mmtypes.h:813
struct _SEGMENT_OBJECT * PSEGMENT_OBJECT
LIST_ENTRY DereferenceList
Definition: mmtypes.h:542
_SECTION_INHERIT
Definition: nt_native.h:1277
struct _FILEOFFSET_INFORMATION FILEOFFSET_INFORMATION
ULONG AllocationsSucceededSpecialPool
Definition: mmtypes.h:989
ULONG BaseAddrHigh
Definition: mmtypes.h:632
struct _MM_DRIVER_VERIFIER_DATA * PMM_DRIVER_VERIFIER_DATA
union _MMVAD_SHORT::@2543 u
USHORT LastTrimpStamp
Definition: mmtypes.h:925
MMADDRESS_NODE BalancedRoot
Definition: mmtypes.h:659
ULONG_PTR Long
Definition: mmtypes.h:854
enum _MMLISTS MMLISTS
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:406
uint32_t ULONG_PTR
Definition: typedefs.h:65
ULONG ImageMappedInSystemSpace
Definition: mmtypes.h:485
MMADDRESS_LIST Secured
Definition: mmtypes.h:773
PEPROCESS CreatingProcess
Definition: mmtypes.h:419
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:546
struct _MMVAD MMVAD
struct _MMPFN_IDENTITY MMPFN_IDENTITY
ULONG_PTR EndingVpn
Definition: mmtypes.h:727
ULONG NumberOfFullSectors
Definition: mmtypes.h:577
_SECTION_INFORMATION_CLASS
Definition: mmtypes.h:189
PVOID UniqueFileObjectKey
Definition: mmtypes.h:303
ULONG BeingTrimmed
Definition: mmtypes.h:903
ULONG Spare0
Definition: mmtypes.h:409
union _LARGE_CONTROL_AREA::@2529 u
struct _MEMORY_WORKING_SET_LIST MEMORY_WORKING_SET_LIST
union _SEGMENT::@2526 u1
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:581
struct _MMVAD * LeftChild
Definition: mmtypes.h:724
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:113
union _MMVAD_LONG::@2538 u
long LONG
Definition: pedump.c:60
ULONG SessionSpace
Definition: mmtypes.h:902
LARGE_INTEGER SizeOfSection
Definition: mmtypes.h:810
ULONG NumberOfFullSectors
Definition: mmtypes.h:594
USHORT FlushInProgressCount
Definition: mmtypes.h:556
SIZE_T PeakVirtualSize
Definition: pstypes.h:106
SIZE_T PeakPagefileUsage
Definition: pstypes.h:102
struct MEMORY_SECTION_NAME * PMEMORY_SECTION_NAME
LIST_ENTRY UserGlobalList
Definition: mmtypes.h:560
struct _MSUBSECTION MSUBSECTION
ULONG_PTR Hashed
Definition: mmtypes.h:828
PCONTROL_AREA ControlArea
Definition: mmtypes.h:733
struct _MMSUPPORT_FLAGS MMSUPPORT_FLAGS
PMMPTE LastContiguousPte
Definition: mmtypes.h:735
ULONG LongFlags2
Definition: mmtypes.h:767
ULONG ReferenceCount
Definition: mmtypes.h:390
struct _LARGE_CONTROL_AREA LARGE_CONTROL_AREA
unsigned char BOOLEAN
union _MMVAD_LONG::@2537 u1
struct _MMSUBSECTION_FLAGS2 MMSUBSECTION_FLAGS2
UNIQUE_PROCESS_INFORMATION e4
Definition: mmtypes.h:292
ULONG NumberOfPfnReferences
Definition: mmtypes.h:544
struct _MMSUBSECTION_FLAGS * PMMSUBSECTION_FLAGS
ULONG_PTR StartingVpn
Definition: mmtypes.h:794
ULONG ExtendableFile
Definition: mmtypes.h:709
PVOID Banked
Definition: mmtypes.h:777
union _MMVAD_SHORT::@2542 u1
SIZE_T PrivateUsage
Definition: pstypes.h:117
struct _UNIQUE_PROCESS_INFORMATION UNIQUE_PROCESS_INFORMATION
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
struct _SECTION * PSECTION
ULONG LongFlags
Definition: mmtypes.h:527
ULONG NextSlot
Definition: mmtypes.h:871
ULONGLONG UseDescription
Definition: mmtypes.h:252
struct _SECTION SECTION
union _MMVAD::@2536 u2
MMWSLE_FREE_ENTRY Free
Definition: mmtypes.h:856
enum _MEMORY_INFORMATION_CLASS MEMORY_INFORMATION_CLASS
SIZE_T MmHeapDeCommitTotalFreeThreshold
Definition: mminit.c:368
struct _MMWSLE_FREE_ENTRY MMWSLE_FREE_ENTRY
ULONG_PTR StartingVpn
Definition: mmtypes.h:726
ULONG_PTR StartingVpn
Definition: mmtypes.h:650
struct _MMWSLENTRY MMWSLENTRY
struct _MMADDRESS_NODE * LeftChild
Definition: mmtypes.h:648
USHORT FlushInProgressCount
Definition: mmtypes.h:533
union _CONTROL_AREA::@2528 u
struct _MMADDRESS_NODE MMADDRESS_NODE
LIST_ENTRY DereferenceList
Definition: mmtypes.h:519
struct _MMVAD * Parent
Definition: mmtypes.h:722
PVOID NodeHint
Definition: mmtypes.h:667
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:739
ULONG_PTR MemCommit
Definition: mmtypes.h:692
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS * PDRIVER_SPECIFIED_VERIFIER_THUNKS
PAGEDIR_INFORMATION e3
Definition: mmtypes.h:291
ULONG MultipleSecured
Definition: mmtypes.h:706
ULONG FileOffset
Definition: mmtypes.h:703
_MEMORY_INFORMATION_CLASS
Definition: mmtypes.h:177
ULONG_PTR EndingVpn
Definition: mmtypes.h:651
ULONG NonExtendedPtes
Definition: mmtypes.h:617
ULONG GlobalMemory
Definition: mmtypes.h:477
MMSUPPORT_FLAGS Flags
Definition: mmtypes.h:930
ULONG PageFaultCount
Definition: mmtypes.h:931
struct _MMSUPPORT * PMMSUPPORT
EX_PUSH_LOCK WorkingSetMutex
Definition: mmtypes.h:958
struct _CONTROL_AREA * PCONTROL_AREA
ULONG_PTR PrivateMemory
Definition: mmtypes.h:695
LIST_ENTRY WorkingSetExpansionLinks
Definition: mmtypes.h:922
ULONG QuadwordPad
Definition: mmtypes.h:535
struct _EVENT_COUNTER EVENT_COUNTER
PVOID Key
Definition: mmtypes.h:862
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:112
PCONTROL_AREA ControlArea
Definition: mmtypes.h:619
struct _VM_COUNTERS_EX VM_COUNTERS_EX
PMMSUBSECTION_FLAGS MmSubSectionFlags
Definition: mmtypes.h:623
struct _MEMORY_BASIC_INFORMATION * PMEMORY_BASIC_INFORMATION
struct _MMEXTEND_INFO * PMMEXTEND_INFO
ULONG GrowWsleHash
Definition: mmtypes.h:911
PMMEXTEND_INFO ExtendedInfo
Definition: mmtypes.h:778
struct _MEMORY_FRAME_INFORMATION MEMORY_FRAME_INFORMATION
union _MMPFN_IDENTITY::@2516 u2
struct _MMVAD_LONG * PMMVAD_LONG
SIZE_T PageFrameIndex
Definition: mmtypes.h:294
ULONG SubsectionStatic
Definition: mmtypes.h:498
INT POOL_TYPE
Definition: typedefs.h:78
struct _MMSUPPORT MMSUPPORT
ULONG LastInitializedWsle
Definition: mmtypes.h:873
uint64_t ULONGLONG
Definition: typedefs.h:67
ULONG TotalNumberOfPtes
Definition: mmtypes.h:615
PVOID NodeFreeHint
Definition: mmtypes.h:668
PVOID FileObject
Definition: mmtypes.h:302
ULONG_PTR StartingVpn
Definition: mmtypes.h:755
struct _SECTION_IMAGE_INFORMATION * PSECTION_IMAGE_INFORMATION
MMSUBSECTION_FLAGS2 SubsectionFlags2
Definition: mmtypes.h:604
ULONG StartingSector
Definition: mmtypes.h:576
ULONG TotalNumberOfPtes
Definition: mmtypes.h:433
SIZE_T VirtualSize
Definition: pstypes.h:107
LIST_ENTRY List
Definition: mmtypes.h:772
struct _MMVAD_FLAGS MMVAD_FLAGS
ULONG MustBeZero
Definition: mmtypes.h:836
union _MMWSLE::@2545 u1
PFILE_OBJECT FilePointer
Definition: mmtypes.h:553
PLARGE_CONTROL_AREA LargeControlArea
Definition: mmtypes.h:621
ULONGLONG ListDescription
Definition: mmtypes.h:253
struct _MMSECTION_FLAGS MMSECTION_FLAGS
struct _SEGMENT_FLAGS * PSEGMENT_FLAGS
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:768
ULONG DebugSymbolsLoaded
Definition: mmtypes.h:480
ULONGLONG PageDirectoryBase
Definition: mmtypes.h:271
LONG_PTR Balance
Definition: mmtypes.h:789
ULONG Accessed
Definition: mmtypes.h:487
LONG NextFree
Definition: mmtypes.h:845
ULONG_PTR VirtualPageNumber
Definition: mmtypes.h:831
struct _ADDRESS_RANGE ADDRESS_RANGE
struct _MMSECTION_FLAGS * PMMSECTION_FLAGS
* PFILE_OBJECT
Definition: iotypes.h:1998
struct _MMVAD_SHORT MMVAD_SHORT
ULONG SubsectionAccessed
Definition: mmtypes.h:508
struct _MMADDRESS_NODE * RightChild
Definition: mmtypes.h:649
struct _SECTION_IMAGE_INFORMATION SECTION_IMAGE_INFORMATION
union _MMVAD_LONG::@2540 u3
SIZE_T QuotaNonPagedPoolUsage
Definition: pstypes.h:100
struct _MMWSL * PMMWSL
ULONGLONG DontUse
Definition: mmtypes.h:270
struct _MM_AVL_TABLE * PMM_AVL_TABLE
struct _CONTROL_AREA CONTROL_AREA
struct _SUBSECTION * PSUBSECTION
struct _MMVAD * RightChild
Definition: mmtypes.h:725
ULONG CurrentNonPagedPoolAllocations
Definition: mmtypes.h:1000
ULONGLONG CommittedSize
Definition: mmtypes.h:389
struct _UNIQUE_PROCESS_INFORMATION * PUNIQUE_PROCESS_INFORMATION
ULONG_PTR EndingVpn
Definition: mmtypes.h:795
UNICODE_STRING SectionFileName
Definition: mmtypes.h:323
unsigned char UCHAR
Definition: xmlstorage.h:181
ULONG Claim
Definition: mmtypes.h:944
struct _MMVAD_FLAGS2 * PMMVAD_FLAGS2
ULONG SetMappedFileIoComplete
Definition: mmtypes.h:481
MMSECTION_FLAGS Flags
Definition: mmtypes.h:814
PMMWSLE Wsle
Definition: mmtypes.h:872
PMMWSLE_HASH HashTable
Definition: mmtypes.h:875
PSUBSECTION Subsection
Definition: mmtypes.h:620
ULONG TotalNumberOfPtes4132
Definition: mmtypes.h:398
struct _FILEOFFSET_INFORMATION * PFILEOFFSET_INFORMATION
struct _SEGMENT SEGMENT
union _MMVAD_LONG::@2539 u2
PVOID VirtualAddress
Definition: mmtypes.h:305
ULONG AllocationsFailedDeliberately
Definition: mmtypes.h:994
ULONG GlobalOnlyPerSession
Definition: mmtypes.h:488
Definition: btrfs_drv.h:1922
ULONG CopyOnWrite
Definition: mmtypes.h:711
struct _MAPPED_FILE_SEGMENT * PMAPPED_FILE_SEGMENT
ULONG NonDirectCount
Definition: mmtypes.h:874
PMMSECTION_FLAGS MmSectionFlags
Definition: mmtypes.h:622
Definition: typedefs.h:119
ULONG CopyOnWrite
Definition: mmtypes.h:471
ULONG NumberOfMappedViews
Definition: mmtypes.h:522
ULONG PageFaultCount
Definition: pstypes.h:94
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:413
struct _SEGMENT_FLAGS SEGMENT_FLAGS
ULONG_PTR Valid
Definition: mmtypes.h:824
struct _SEGMENT * PSEGMENT
struct _MAPPED_FILE_SEGMENT MAPPED_FILE_SEGMENT
struct _MSUBSECTION * PMSUBSECTION
ULONG Inherit
Definition: mmtypes.h:710
ULONG_PTR LongFlags
Definition: mmtypes.h:798
FILEOFFSET_INFORMATION e2
Definition: mmtypes.h:290
ULONG_PTR LongFlags
Definition: mmtypes.h:730
ULONG NumberOfCommittedPageTables
Definition: mmtypes.h:877
UINT64 SizeOfSegment
Definition: mmtypes.h:436
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:439
ULONG WorkingSetPrivateSize
Definition: mmtypes.h:947
union _MSUBSECTION::@2532 u2
ULONG PeakWorkingSetSize
Definition: mmtypes.h:932
ULONG_PTR SIZE_T
Definition: typedefs.h:80
ULONG NumberOfUserReferences
Definition: mmtypes.h:547
ULONG Available
Definition: mmtypes.h:913
struct _MEMORY_WORKING_SET_LIST * PMEMORY_WORKING_SET_LIST
LIST_ENTRY DereferenceList
Definition: mmtypes.h:599
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:574
struct _MMWSL MMWSL
ULONG LongFlags
Definition: mmtypes.h:573
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:598
struct _LARGE_CONTROL_AREA * PLARGE_CONTROL_AREA
ULONG Type
Definition: mmtypes.h:635
struct _SECTION_BASIC_INFORMATION SECTION_BASIC_INFORMATION
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:440
SLIST_ENTRY ListEntry
Definition: mmtypes.h:450
ULONG TrimHard
Definition: mmtypes.h:905
ULONG HashTableSize
Definition: mmtypes.h:876
ULONG_PTR LockedInMemory
Definition: mmtypes.h:826
struct _MMADDRESS_LIST * PMMADDRESS_LIST
unsigned short USHORT
Definition: pedump.c:61
ULONG ImageCommitment
Definition: mmtypes.h:618
ULONG FilePointerNull
Definition: mmtypes.h:479
SIZE_T MmHeapSegmentReserve
Definition: mminit.c:366
ULONG NumberOfImageWaiters
Definition: mmtypes.h:880
ULONG LengthHigh
Definition: mmtypes.h:634
struct _MEMORY_SECTION_NAME MEMORY_SECTION_NAME
ULONG MaximumWorkingSetHard
Definition: mmtypes.h:906
ULONG BeingDeleted
Definition: mmtypes.h:460
ULONG Mismatch
Definition: mmtypes.h:300
ULONG Spare0
Definition: mmtypes.h:934
ULONG FirstFree
Definition: mmtypes.h:868
ULONG WritableUserReferences
Definition: mmtypes.h:534
ULONG_PTR EndVpn
Definition: mmtypes.h:677
union _SUBSECTION::@2530 u
PSEGMENT Segment
Definition: mmtypes.h:518
SIZE_T PagefileUsage
Definition: pstypes.h:101
POBJECT_TYPE NTSYSAPI MmSectionObjectType
Definition: section.c:195
ULONG StartingSector4132
Definition: mmtypes.h:502
struct _PAGEDIR_INFORMATION PAGEDIR_INFORMATION
ULONG PtesInSubsection
Definition: mmtypes.h:597
MMADDRESS_NODE Address
Definition: mmtypes.h:808
C_ASSERT(sizeof(HARDWARE_PDE_ARMV6)==sizeof(ULONG))
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
ULONG NumberOfUserReferences
Definition: mmtypes.h:524
PVOID BaseAddress
Definition: mmtypes.h:614
ULONG FloppyMedia
Definition: mmtypes.h:474
union _MMVAD_LONG::@2541 u4
struct _SECTION_BASIC_INFORMATION * PSECTION_BASIC_INFORMATION
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:799
ULONG ForceTrim
Definition: mmtypes.h:907
ULONG NumberOfPfnReferences
Definition: mmtypes.h:521
#define SLIST_ENTRY(type)
Definition: queue.h:102
PMMPTE SubsectionBase
Definition: mmtypes.h:595
union _MMADDRESS_NODE::@2533 u1
ULONG MemoryPriority
Definition: mmtypes.h:910
SIZE_T VirtualSize
Definition: pstypes.h:93
PVOID BasedAddress
Definition: mmtypes.h:415
ULONG DeleteOnClose
Definition: mmtypes.h:478
MMPTE SegmentPteTemplate
Definition: mmtypes.h:411
ULONG_PTR StartVpn
Definition: mmtypes.h:676
ULONG BaseAddrLow
Definition: mmtypes.h:631
ULONG_PTR Spare
Definition: mmtypes.h:694
enum _MI_VAD_TYPE * PMI_VAD_TYPE
struct _MMSUBSECTION_FLAGS MMSUBSECTION_FLAGS
PVOID ProtoPteAddress
Definition: mmtypes.h:304
ULONG WasPurged
Definition: mmtypes.h:475
enum _PP_NPAGED_LOOKASIDE_NUMBER PP_NPAGED_LOOKASIDE_NUMBER
ULONG Spare
Definition: mmtypes.h:946
MMSECTION_FLAGS Flags
Definition: mmtypes.h:528
unsigned int ULONG
Definition: retypes.h:1
SIZE_T PeakWorkingSetSize
Definition: pstypes.h:109
SIZE_T PagefileUsage
Definition: pstypes.h:115
USHORT ModifiedWriteCount
Definition: mmtypes.h:555
PMMPTE FirstPrototypePte
Definition: mmtypes.h:763
union _SEGMENT::@2527 u2
ULONG CollidedFlush
Definition: mmtypes.h:482
struct _MM_AVL_TABLE MM_AVL_TABLE
USHORT NextPageColor
Definition: mmtypes.h:926
PMMVAD RightChild
Definition: mmtypes.h:754
PMMPTE FirstPrototypePte
Definition: mmtypes.h:734
PKEVENT ExitEvent
Definition: mmtypes.h:956
ULONG NumberOfSectionReferences
Definition: mmtypes.h:543
struct _PAGEDIR_INFORMATION * PPAGEDIR_INFORMATION
struct _SEGMENT_OBJECT SEGMENT_OBJECT
struct _MMPFN_IDENTITY * PMMPFN_IDENTITY
ULONG UserWritable
Definition: mmtypes.h:486
struct _VM_COUNTERS_ VM_COUNTERS
unsigned long long UINT64
ULONG_PTR LockedInWs
Definition: mmtypes.h:825
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:99
PSEGMENT Segment
Definition: mmtypes.h:541
ULONG MaximumWorkingSetSize
Definition: mmtypes.h:939
ULONG_PTR Protection
Definition: mmtypes.h:827
struct _ADDRESS_RANGE * PADDRESS_RANGE
ULONG WorkingSetSize
Definition: mmtypes.h:954
ULONG_PTR Direct
Definition: mmtypes.h:829
struct _MMVAD_FLAGS2 MMVAD_FLAGS2
ULONG LastEntry
Definition: mmtypes.h:870
ULONG UnusedPtes
Definition: mmtypes.h:579
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:111
PMMPTE PrototypePte
Definition: mmtypes.h:426
struct _MMVAD_LONG MMVAD_LONG
struct _MMVAD * PMMVAD
PMMPTE SubsectionBase
Definition: mmtypes.h:578
union _MMVAD::@2534 u1
ULONG WritableUserReferences
Definition: mmtypes.h:557
ULONG WriteCombined
Definition: mmtypes.h:490
PVOID VirtualAddress
Definition: mmtypes.h:853
ULONG LongFlags2
Definition: mmtypes.h:603
ULONG_PTR VadType
Definition: mmtypes.h:691
ULONG LengthLow
Definition: mmtypes.h:633
ULONG BeingCreated
Definition: mmtypes.h:461
struct _MMADDRESS_NODE * Parent
Definition: mmtypes.h:646
Definition: mmtypes.h:834
PMMVAD LeftChild
Definition: mmtypes.h:792
struct _MMWSLE * PMMWSLE
struct _MMWSLE_HASH MMWSLE_HASH
struct _MMEXTEND_INFO MMEXTEND_INFO
struct _MMADDRESS_NODE * PMMADDRESS_NODE
ULONG LongFlags2
Definition: mmtypes.h:738
ULONG UnusedPtes
Definition: mmtypes.h:596
ULONG RefCount
Definition: mmtypes.h:451
ULONG VadBitMapHint
Definition: mmtypes.h:881
ULONG PtesInSubsection
Definition: mmtypes.h:580