ReactOS  r74006
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  NonPagedPoolSession = 32,
135 } POOL_TYPE;
136 #endif
137 
138 //
139 // Memory Manager Page Lists
140 //
141 typedef enum _MMLISTS
142 {
151 } MMLISTS;
152 
153 //
154 // Per Processor Non Paged Lookaside List IDs
155 //
157 {
167 
168 //
169 // Memory Information Classes for NtQueryVirtualMemory
170 //
172 {
179 
180 //
181 // Section Information Clasess for NtQuerySection
182 //
184 {
188 
189 //
190 // Kinds of VADs
191 //
192 typedef enum _MI_VAD_TYPE
193 {
203 
204 #ifdef NTOS_MODE_USER
205 
206 //
207 // Virtual Memory Counters
208 //
209 typedef struct _VM_COUNTERS
210 {
223 
224 typedef struct _VM_COUNTERS_EX
225 {
239 #endif
240 
241 //
242 // Sub-Information Types for PFN Identity
243 //
245 {
254 
256 {
261 
262 typedef struct _PAGEDIR_INFORMATION
263 {
268 
270 {
275 
276 //
277 // PFN Identity Data Structure
278 //
279 typedef struct _MMPFN_IDENTITY
280 {
281  union
282  {
287  } u1;
289  union
290  {
291  struct
292  {
295  } e1;
300  } u2;
302 
303 //
304 // List of Working Sets
305 //
307 {
311 
312 //
313 // Memory Information Structures for NtQueryVirtualMemory
314 //
315 typedef struct
316 {
318  WCHAR NameBuffer[ANYSIZE_ARRAY];
320 
321 //
322 // Section Information Structures for NtQuerySection
323 //
325 {
330 
332 {
338  union
339  {
340  struct
341  {
344  };
346  };
352 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
353  union
354  {
355  struct
356  {
362  };
364  };
365 #else
366  BOOLEAN Spare1;
367 #endif
370 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
372 #else
373  ULONG Reserved[1];
374 #endif
376 
377 #ifndef NTOS_MODE_USER
378 
379 //
380 // Section Extension Information
381 //
382 typedef struct _MMEXTEND_INFO
383 {
387 
388 //
389 // Segment and Segment Flags
390 //
391 typedef struct _SEGMENT_FLAGS
392 {
398 
399 typedef struct _SEGMENT
400 {
408  PMMEXTEND_INFO ExtendInfo;
411  union
412  {
415  } u1;
416  union
417  {
418  PSECTION_IMAGE_INFORMATION ImageInformation;
420  } u2;
423 } SEGMENT, *PSEGMENT;
424 
425 typedef struct _MAPPED_FILE_SEGMENT
426 {
434  PMMEXTEND_INFO ExtendInfo;
439 
440 //
441 // Event Counter Structure
442 //
443 typedef struct _EVENT_COUNTER
444 {
449 
450 //
451 // Flags
452 //
453 typedef struct _MMSECTION_FLAGS
454 {
488 
489 typedef struct _MMSUBSECTION_FLAGS
490 {
500 
501 typedef struct _MMSUBSECTION_FLAGS2
502 {
507 
508 //
509 // Control Area Structures
510 //
511 typedef struct _CONTROL_AREA
512 {
513  PSEGMENT Segment;
520  union
521  {
524  } u;
526  PEVENT_COUNTER WaitingForDeletion;
532 
533 typedef struct _LARGE_CONTROL_AREA
534 {
535  PSEGMENT Segment;
542  union
543  {
546  } u;
548  PEVENT_COUNTER WaitingForDeletion;
557 
558 //
559 // Subsection and Mapped Subsection
560 //
561 typedef struct _SUBSECTION
562 {
563  PCONTROL_AREA ControlArea;
564  union
565  {
568  } u;
576 
577 typedef struct _MSUBSECTION
578 {
579  PCONTROL_AREA ControlArea;
580  union
581  {
584  } u;
593  union
594  {
597  } u2;
599 
600 //
601 // Segment Object
602 //
603 typedef struct _SEGMENT_OBJECT
604 {
610  PCONTROL_AREA ControlArea;
611  PSUBSECTION Subsection;
612  PLARGE_CONTROL_AREA LargeControlArea;
613  PMMSECTION_FLAGS MmSectionFlags;
614  PMMSUBSECTION_FLAGS MmSubSectionFlags;
616 
617 //
618 // Section Object
619 //
620 typedef struct _SECTION_OBJECT
621 {
627  PSEGMENT_OBJECT Segment;
629 
630 //
631 // Generic Address Range Structure
632 //
633 typedef struct _ADDRESS_RANGE
634 {
641 
642 //
643 // Node in Memory Manager's AVL Table
644 //
645 typedef struct _MMADDRESS_NODE
646 {
647  union
648  {
651  } u1;
657 
658 //
659 // Memory Manager AVL Table for VADs and other descriptors
660 //
661 typedef struct _MM_AVL_TABLE
662 {
666 #ifdef _WIN64
668 #else
670 #endif
674 
675 //
676 // Virtual Adress List used in VADs
677 //
678 typedef struct _MMADDRESS_LIST
679 {
683 
684 //
685 // Flags used in the VAD
686 //
687 typedef struct _MMVAD_FLAGS
688 {
689 #ifdef _WIN64
691 #else
693 #endif
701 
702 //
703 // Extended flags used in the VAD
704 //
705 typedef struct _MMVAD_FLAGS2
706 {
717 
718 //
719 // Virtual Address Descriptor (VAD) Structure
720 //
721 typedef struct _MMVAD
722 {
723  union
724  {
726  struct _MMVAD *Parent;
727  } u1;
728  struct _MMVAD *LeftChild;
732  union
733  {
736  } u;
737  PCONTROL_AREA ControlArea;
740  union
741  {
744  } u2;
745 } MMVAD, *PMMVAD;
746 
747 //
748 // Long VAD used in section and private allocations
749 //
750 typedef struct _MMVAD_LONG
751 {
752  union
753  {
755  PMMVAD Parent;
756  } u1;
757  PMMVAD LeftChild;
758  PMMVAD RightChild;
761  union
762  {
765  } u;
766  PCONTROL_AREA ControlArea;
769  union
770  {
773  } u2;
774  union
775  {
778  } u3;
779  union
780  {
782  PMMEXTEND_INFO ExtendedInfo;
783  } u4;
785 
786 //
787 // Short VAD used in virtual memory allocations
788 //
789 typedef struct _MMVAD_SHORT
790 {
791  union
792  {
794  PMMVAD Parent;
795  } u1;
796  PMMVAD LeftChild;
797  PMMVAD RightChild;
800  union
801  {
804  } u;
806 
807 //
808 // Actual Section Object
809 //
810 typedef struct _SECTION
811 {
813  PSEGMENT Segment;
815  union
816  {
819  } u;
821 } SECTION, *PSECTION;
822 
823 //
824 // Memory Manager Working Set Structures
825 //
826 typedef struct _MMWSLENTRY
827 {
837 
838 typedef struct _MMWSLE
839 {
840  union
841  {
845  } u1;
846 } MMWSLE, *PMMWSLE;
847 
848 typedef struct _MMWSLE_HASH
849 {
853 
854 typedef struct _MMWSL
855 {
860  PMMWSLE Wsle;
863  PMMWSLE_HASH HashTable;
872 } MMWSL, *PMMWSL;
873 
874 //
875 // Flags for Memory Support Structure
876 //
877 typedef struct _MMSUPPORT_FLAGS
878 {
892 
893 //
894 // Per-Process Memory Manager Data
895 //
896 typedef struct _MMSUPPORT
897 {
898 #if (NTDDI_VERSION >= NTDDI_WS03)
900 #endif
901 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
904 #else
905  LARGE_INTEGER LastTrimTime;
906 #endif
910 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
912 #else
913  ULONG GrowthSinceLastEstimate;
914 #endif
918 #if (NTDDI_VERSION < NTDDI_WS03)
920 #endif
922 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
926 #else
927  ULONG NextEstimationSlot;
928  ULONG NextAgingSlot;
929  ULONG EstimatedAvailable;
930 #endif
932 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
934 #endif
936 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
938 #endif
940 
941 //
942 // Memory Information Types
943 //
945 {
954 
955 //
956 // Driver Verifier Data
957 //
959 {
988 
989 //
990 // Internal Driver Verifier Table Data
991 //
993 {
998 
999 #ifdef __cplusplus
1000 extern "C" {
1001 #endif
1002 
1003 //
1004 // Default heap size values. For user mode, these values are copied to a new
1005 // process's PEB by the kernel in MmCreatePeb. In kernel mode, RtlCreateHeap
1006 // reads these variables directly.
1007 //
1008 // These variables should be considered "const"; they are written only once,
1009 // during MmInitSystem.
1010 //
1015 
1016 //
1017 // Section Object Type
1018 //
1020 
1021 #ifdef __cplusplus
1022 }; // extern "C"
1023 #endif
1024 
1025 #endif // !NTOS_MODE_USER
1026 
1027 #ifdef __cplusplus
1028 } // extern "C"
1029 #endif
1030 
1031 #endif // _MMTYPES_H
LARGE_INTEGER Size
Definition: mmtypes.h:328
USHORT ModifiedWriteCount
Definition: mmtypes.h:527
ULONG NoChange
Definition: mmtypes.h:478
ULONG CommittedPageTables[24]
Definition: mmtypes.h:871
DWORD *typedef PVOID
Definition: winlogon.h:52
ULONG_PTR EndingVpn
Definition: mmtypes.h:760
ULONG NoModifiedWriting
Definition: mmtypes.h:458
struct _MMSUPPORT_FLAGS * PMMSUPPORT_FLAGS
ULONG MinimumWorkingSetHard
Definition: mmtypes.h:885
#define SLIST_ENTRY
Definition: rtltypes.h:128
SIZE_T PeakWorkingSetSize
Definition: pstypes.h:95
enum _SECTION_INFORMATION_CLASS SECTION_INFORMATION_CLASS
ULONG NumberOfMappedViews
Definition: mmtypes.h:539
PMMVAD RightChild
Definition: mmtypes.h:797
MMPTE SegmentPteTemplate
Definition: mmtypes.h:432
ULONG SubsectionConverted
Definition: mmtypes.h:504
LONG_PTR Balance
Definition: mmtypes.h:725
ULONG NumberOfCommittedPages
Definition: mmtypes.h:407
ULONG PageFaultCount
Definition: pstypes.h:108
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:526
union _MMWSLE::@2138 u1
ULONG Available0
Definition: mmtypes.h:886
PVOID AccessLog
Definition: mmtypes.h:937
PFILE_OBJECT FilePointer
Definition: mmtypes.h:525
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:97
struct _SECTION_OBJECT * PSECTION_OBJECT
PVOID StartingVa
Definition: mmtypes.h:622
ULONG StartingSector
Definition: mmtypes.h:585
ULONG ReadOnly
Definition: mmtypes.h:711
union _MMPFN_IDENTITY::@2108 u1
LONG_PTR Balance
Definition: mmtypes.h:754
_POOL_TYPE
Definition: ketypes.h:850
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:98
PVOID HashTableStart
Definition: mmtypes.h:866
ULONGLONG SizeOfSegment
Definition: mmtypes.h:405
ULONG UserReference
Definition: mmtypes.h:471
ULONG NumberOfSectionReferences
Definition: mmtypes.h:515
LARGE_INTEGER SizeOfSegment
Definition: mmtypes.h:607
ULONG ExtraSharedWowSubsections
Definition: mmtypes.h:394
PSEGMENT Segment
Definition: mmtypes.h:813
ULONG_PTR Age
Definition: mmtypes.h:834
SIZE_T WorkingSetSize
Definition: pstypes.h:96
USHORT UsedPageTableEntries[768]
Definition: mmtypes.h:870
#define MM_PAGE_FRAME_NUMBER_SIZE
Definition: mmtypes.h:38
ULONG NonExtendedPtes
Definition: mmtypes.h:403
ULONG Spare
Definition: mmtypes.h:396
struct _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION
ULONG BurstAllocationsFailedDeliberately
Definition: mmtypes.h:984
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
union _SEGMENT::@2119 u1
PMMVAD Parent
Definition: mmtypes.h:755
ULONG PhysicalMemory
Definition: mmtypes.h:465
ULONG Index
Definition: mmtypes.h:851
ULONG OneSecured
Definition: mmtypes.h:709
struct _MMWSLE_HASH * PMMWSLE_HASH
__wchar_t WCHAR
Definition: xmlstorage.h:180
PCONTROL_AREA ControlArea
Definition: mmtypes.h:579
struct _MMWSLENTRY * PMMWSLENTRY
SIZE_T MmHeapDeCommitFreeBlockThreshold
Definition: mminit.c:368
struct _MMVAD_SHORT * PMMVAD_SHORT
struct _MM_DRIVER_VERIFIER_DATA MM_DRIVER_VERIFIER_DATA
PMMPTE LastContiguousPte
Definition: mmtypes.h:768
MMWSLENTRY e1
Definition: mmtypes.h:844
ULONG FirstDynamic
Definition: mmtypes.h:857
PSECTION_IMAGE_INFORMATION ImageInformation
Definition: mmtypes.h:418
ULONG CurrentPagedPoolAllocations
Definition: mmtypes.h:976
SIZE_T PeakPagefileUsage
Definition: pstypes.h:116
struct _MMWSLE MMWSLE
ULONG BeingPurged
Definition: mmtypes.h:457
ULONG InitialPageProtection
Definition: mmtypes.h:820
union _MMVAD_SHORT::@2135 u1
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:764
struct _LDR_DATA_TABLE_ENTRY * DataTableEntry
Definition: mmtypes.h:995
enum _SECTION_INHERIT SECTION_INHERIT
SIZE_T ImageCommitment
Definition: mmtypes.h:413
ULONG_PTR CommitCharge
Definition: mmtypes.h:692
_PP_NPAGED_LOOKASIDE_NUMBER
Definition: mmtypes.h:156
PMMWSL VmWorkingSetList
Definition: mmtypes.h:917
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:427
PCONTROL_AREA ControlArea
Definition: mmtypes.h:563
ULONG SectorEndOffset
Definition: mmtypes.h:498
MMPTE ThePtes[1]
Definition: mmtypes.h:422
enum _MI_VAD_TYPE MI_VAD_TYPE
struct _MEMORY_FRAME_INFORMATION * PMEMORY_FRAME_INFORMATION
MMSECTION_FLAGS Flags
Definition: mmtypes.h:545
ULONG LongFlags
Definition: mmtypes.h:582
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:518
PVOID HighestPermittedHashAddress
Definition: mmtypes.h:867
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:548
ULONG LargePages
Definition: mmtypes.h:395
ULONG_PTR NumberGenericTableElements
Definition: mmtypes.h:669
struct _SECTION_OBJECT SECTION_OBJECT
ULONG_PTR NumberOfMappedViews
Definition: mmtypes.h:592
ULONG PeakNonPagedPoolAllocations
Definition: mmtypes.h:979
SIZE_T PeakVirtualSize
Definition: pstypes.h:92
MEMORY_FRAME_INFORMATION e1
Definition: mmtypes.h:283
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:409
union _MMVAD_LONG::@2134 u4
ULONG SessionLeader
Definition: mmtypes.h:881
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS DRIVER_SPECIFIED_VERIFIER_THUNKS
ULONG SecNoChange
Definition: mmtypes.h:708
ULONG_PTR Unused
Definition: mmtypes.h:665
PCONTROL_AREA ControlArea
Definition: mmtypes.h:766
struct _MMVAD_FLAGS * PMMVAD_FLAGS
ULONG_PTR Protection
Definition: mmtypes.h:697
SIZE_T WorkingSetSize
Definition: pstypes.h:110
ULONG LongVad
Definition: mmtypes.h:712
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:583
PMMVAD Parent
Definition: mmtypes.h:794
ULONG AcquiredUnsafe
Definition: mmtypes.h:889
SIZE_T QuotaNonPagedPoolUsage
Definition: pstypes.h:114
SIZE_T MmHeapSegmentCommit
Definition: mminit.c:366
struct _MSUBSECTION * LastSubsectionHint
Definition: mmtypes.h:437
PMMVAD LeftChild
Definition: mmtypes.h:757
ULONG MinimumWorkingSetSize
Definition: mmtypes.h:915
_MMLISTS
Definition: mmtypes.h:141
struct _MMADDRESS_LIST MMADDRESS_LIST
SIZE_T NumberOfCommittedPages
Definition: mmtypes.h:433
ULONG TotalNumberOfPtes
Definition: mmtypes.h:402
struct _EVENT_COUNTER * PEVENT_COUNTER
_MI_VAD_TYPE
Definition: mmtypes.h:192
PVOID FirstMappedVa
Definition: mmtypes.h:419
struct _SUBSECTION SUBSECTION
union _MMVAD_LONG::@2131 u
ULONG FailAllIo
Definition: mmtypes.h:459
ULONG_PTR DepthOfTree
Definition: mmtypes.h:664
ULONG_PTR LongFlags
Definition: mmtypes.h:763
#define NTSYSAPI
Definition: ntoskrnl.h:14
ULONG_PTR NoChange
Definition: mmtypes.h:694
KEVENT Event
Definition: mmtypes.h:447
PSEGMENT_OBJECT Segment
Definition: mmtypes.h:627
ULONG Networked
Definition: mmtypes.h:463
LONG_PTR Balance
Definition: mmtypes.h:649
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:735
ULONG WorkingSetSizeOverhead
Definition: mmtypes.h:925
ULONG LongFlags
Definition: mmtypes.h:817
struct _SEGMENT_OBJECT * PSEGMENT_OBJECT
LIST_ENTRY DereferenceList
Definition: mmtypes.h:536
struct _VM_COUNTERS_EX VM_COUNTERS_EX
_SECTION_INHERIT
Definition: nt_native.h:1277
struct _FILEOFFSET_INFORMATION FILEOFFSET_INFORMATION
ULONG AllocationsSucceededSpecialPool
Definition: mmtypes.h:966
ULONG BaseAddrHigh
Definition: mmtypes.h:636
struct _MM_DRIVER_VERIFIER_DATA * PMM_DRIVER_VERIFIER_DATA
union _LARGE_CONTROL_AREA::@2122 u
struct _VM_COUNTERS_ VM_COUNTERS
USHORT LastTrimpStamp
Definition: mmtypes.h:902
MMADDRESS_NODE BalancedRoot
Definition: mmtypes.h:663
ULONG_PTR Long
Definition: mmtypes.h:843
enum _MMLISTS MMLISTS
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:401
PVOID EndingVa
Definition: mmtypes.h:623
uint32_t ULONG_PTR
Definition: typedefs.h:64
ULONG ImageMappedInSystemSpace
Definition: mmtypes.h:480
MMADDRESS_LIST Secured
Definition: mmtypes.h:777
PEPROCESS CreatingProcess
Definition: mmtypes.h:414
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:540
struct _MMVAD MMVAD
union _MMADDRESS_NODE::@2126 u1
struct _MMPFN_IDENTITY MMPFN_IDENTITY
ULONG_PTR EndingVpn
Definition: mmtypes.h:731
ULONG NumberOfFullSectors
Definition: mmtypes.h:570
_SECTION_INFORMATION_CLASS
Definition: mmtypes.h:183
ULONG PeakPagedPoolAllocations
Definition: mmtypes.h:978
PVOID UniqueFileObjectKey
Definition: mmtypes.h:297
ULONG BeingTrimmed
Definition: mmtypes.h:880
ULONG Spare0
Definition: mmtypes.h:404
struct _MEMORY_WORKING_SET_LIST MEMORY_WORKING_SET_LIST
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
struct _VM_COUNTERS_ * PVM_COUNTERS
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:574
struct _MMVAD * LeftChild
Definition: mmtypes.h:728
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:113
ULONG SessionSpace
Definition: mmtypes.h:879
LARGE_INTEGER SizeOfSection
Definition: mmtypes.h:814
ULONG NumberOfFullSectors
Definition: mmtypes.h:586
USHORT FlushInProgressCount
Definition: mmtypes.h:550
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:554
struct _MSUBSECTION MSUBSECTION
ULONG_PTR Hashed
Definition: mmtypes.h:832
PCONTROL_AREA ControlArea
Definition: mmtypes.h:737
struct _MMSUPPORT_FLAGS MMSUPPORT_FLAGS
PMMPTE LastContiguousPte
Definition: mmtypes.h:739
ULONG LongFlags2
Definition: mmtypes.h:771
ULONG ReferenceCount
Definition: mmtypes.h:385
struct _LARGE_CONTROL_AREA LARGE_CONTROL_AREA
PVOID Parent
Definition: mmtypes.h:624
struct _MMSUBSECTION_FLAGS2 MMSUBSECTION_FLAGS2
UNIQUE_PROCESS_INFORMATION e4
Definition: mmtypes.h:286
ULONG NumberOfPfnReferences
Definition: mmtypes.h:538
struct _MMSUBSECTION_FLAGS * PMMSUBSECTION_FLAGS
ULONG_PTR StartingVpn
Definition: mmtypes.h:798
ULONG ExtendableFile
Definition: mmtypes.h:713
PVOID Banked
Definition: mmtypes.h:781
SIZE_T PrivateUsage
Definition: pstypes.h:117
struct _UNIQUE_PROCESS_INFORMATION UNIQUE_PROCESS_INFORMATION
struct _SECTION * PSECTION
union _MMVAD_SHORT::@2136 u
ULONG LongFlags
Definition: mmtypes.h:522
ULONG NextSlot
Definition: mmtypes.h:859
ULONGLONG UseDescription
Definition: mmtypes.h:246
struct _SECTION SECTION
enum _MEMORY_INFORMATION_CLASS MEMORY_INFORMATION_CLASS
SIZE_T MmHeapDeCommitTotalFreeThreshold
Definition: mminit.c:367
ULONG_PTR StartingVpn
Definition: mmtypes.h:730
ULONG_PTR StartingVpn
Definition: mmtypes.h:654
struct _MMWSLENTRY MMWSLENTRY
struct _MMADDRESS_NODE * LeftChild
Definition: mmtypes.h:652
USHORT FlushInProgressCount
Definition: mmtypes.h:528
struct _MMADDRESS_NODE MMADDRESS_NODE
LIST_ENTRY DereferenceList
Definition: mmtypes.h:514
struct _MMVAD * Parent
Definition: mmtypes.h:726
PVOID NodeHint
Definition: mmtypes.h:671
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:743
ULONG_PTR MemCommit
Definition: mmtypes.h:696
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS * PDRIVER_SPECIFIED_VERIFIER_THUNKS
PAGEDIR_INFORMATION e3
Definition: mmtypes.h:285
ULONG MultipleSecured
Definition: mmtypes.h:710
_MEMORY_INFORMATION_CLASS
Definition: mmtypes.h:171
ULONG_PTR EndingVpn
Definition: mmtypes.h:655
ULONG NonExtendedPtes
Definition: mmtypes.h:608
ULONG GlobalMemory
Definition: mmtypes.h:472
MMSUPPORT_FLAGS Flags
Definition: mmtypes.h:907
union _SECTION::@2137 u
ULONG PageFaultCount
Definition: mmtypes.h:908
unsigned char BOOLEAN
struct _MMSUPPORT * PMMSUPPORT
EX_PUSH_LOCK WorkingSetMutex
Definition: mmtypes.h:935
union _MMPFN_IDENTITY::@2109 u2
struct _CONTROL_AREA * PCONTROL_AREA
ULONG_PTR PrivateMemory
Definition: mmtypes.h:699
LIST_ENTRY WorkingSetExpansionLinks
Definition: mmtypes.h:899
ULONG QuadwordPad
Definition: mmtypes.h:530
union _SEGMENT::@2120 u2
struct _EVENT_COUNTER EVENT_COUNTER
PVOID Key
Definition: mmtypes.h:850
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:112
PCONTROL_AREA ControlArea
Definition: mmtypes.h:610
PMMSUBSECTION_FLAGS MmSubSectionFlags
Definition: mmtypes.h:614
struct _MEMORY_BASIC_INFORMATION * PMEMORY_BASIC_INFORMATION
struct _MMEXTEND_INFO * PMMEXTEND_INFO
ULONG GrowWsleHash
Definition: mmtypes.h:888
PMMEXTEND_INFO ExtendedInfo
Definition: mmtypes.h:782
struct _MEMORY_FRAME_INFORMATION MEMORY_FRAME_INFORMATION
struct _MMVAD_LONG * PMMVAD_LONG
SIZE_T PageFrameIndex
Definition: mmtypes.h:288
ULONG SubsectionStatic
Definition: mmtypes.h:493
INT POOL_TYPE
Definition: typedefs.h:77
struct _MMSUPPORT MMSUPPORT
ULONG LastInitializedWsle
Definition: mmtypes.h:861
uint64_t ULONGLONG
Definition: typedefs.h:66
ULONG TotalNumberOfPtes
Definition: mmtypes.h:606
PVOID NodeFreeHint
Definition: mmtypes.h:672
union _MMVAD::@2128 u
PVOID FileObject
Definition: mmtypes.h:296
ULONG_PTR StartingVpn
Definition: mmtypes.h:759
struct _SECTION_IMAGE_INFORMATION * PSECTION_IMAGE_INFORMATION
MMSUBSECTION_FLAGS2 SubsectionFlags2
Definition: mmtypes.h:596
ULONG StartingSector
Definition: mmtypes.h:569
ULONG TotalNumberOfPtes
Definition: mmtypes.h:428
SIZE_T VirtualSize
Definition: pstypes.h:107
LIST_ENTRY List
Definition: mmtypes.h:776
struct _MMVAD_FLAGS MMVAD_FLAGS
PFILE_OBJECT FilePointer
Definition: mmtypes.h:547
PLARGE_CONTROL_AREA LargeControlArea
Definition: mmtypes.h:612
ULONGLONG ListDescription
Definition: mmtypes.h:247
struct _MMSECTION_FLAGS MMSECTION_FLAGS
struct _SEGMENT_FLAGS * PSEGMENT_FLAGS
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:772
ULONG DebugSymbolsLoaded
Definition: mmtypes.h:475
ULONGLONG PageDirectoryBase
Definition: mmtypes.h:265
LONG_PTR Balance
Definition: mmtypes.h:793
ULONG Accessed
Definition: mmtypes.h:482
ULONG_PTR VirtualPageNumber
Definition: mmtypes.h:835
union _MMVAD_LONG::@2132 u2
struct _ADDRESS_RANGE ADDRESS_RANGE
struct _MMSECTION_FLAGS * PMMSECTION_FLAGS
* PFILE_OBJECT
Definition: iotypes.h:1949
struct _MMVAD_SHORT MMVAD_SHORT
ULONG SubsectionAccessed
Definition: mmtypes.h:503
struct _MMADDRESS_NODE * RightChild
Definition: mmtypes.h:653
struct _SECTION_IMAGE_INFORMATION SECTION_IMAGE_INFORMATION
SIZE_T QuotaNonPagedPoolUsage
Definition: pstypes.h:100
struct _MMWSL * PMMWSL
ULONGLONG DontUse
Definition: mmtypes.h:264
struct _MM_AVL_TABLE * PMM_AVL_TABLE
union _SUBSECTION::@2123 u
struct _CONTROL_AREA CONTROL_AREA
struct _SUBSECTION * PSUBSECTION
struct _MMVAD * RightChild
Definition: mmtypes.h:729
ULONG CurrentNonPagedPoolAllocations
Definition: mmtypes.h:977
ULONGLONG CommittedSize
Definition: mmtypes.h:384
struct _UNIQUE_PROCESS_INFORMATION * PUNIQUE_PROCESS_INFORMATION
ULONG_PTR EndingVpn
Definition: mmtypes.h:799
UNICODE_STRING SectionFileName
Definition: mmtypes.h:317
unsigned char UCHAR
Definition: xmlstorage.h:181
ULONG Claim
Definition: mmtypes.h:921
struct _MMVAD_FLAGS2 * PMMVAD_FLAGS2
ULONG SetMappedFileIoComplete
Definition: mmtypes.h:476
MMSECTION_FLAGS Flags
Definition: mmtypes.h:818
PMMWSLE Wsle
Definition: mmtypes.h:860
PMMWSLE_HASH HashTable
Definition: mmtypes.h:863
PSUBSECTION Subsection
Definition: mmtypes.h:611
ULONG TotalNumberOfPtes4132
Definition: mmtypes.h:393
struct _FILEOFFSET_INFORMATION * PFILEOFFSET_INFORMATION
struct _SEGMENT SEGMENT
PVOID VirtualAddress
Definition: mmtypes.h:299
ULONG AllocationsFailedDeliberately
Definition: mmtypes.h:971
ULONG GlobalOnlyPerSession
Definition: mmtypes.h:483
Definition: ntddk_ex.h:202
ULONG CopyOnWrite
Definition: mmtypes.h:715
struct _MAPPED_FILE_SEGMENT * PMAPPED_FILE_SEGMENT
ULONG NonDirectCount
Definition: mmtypes.h:862
PMMSECTION_FLAGS MmSectionFlags
Definition: mmtypes.h:613
Definition: typedefs.h:118
ULONG CopyOnWrite
Definition: mmtypes.h:466
ULONG NumberOfMappedViews
Definition: mmtypes.h:517
ULONG PageFaultCount
Definition: pstypes.h:94
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:408
ULONG PVOID Reserved
Definition: ntimage.h:533
struct _SEGMENT_FLAGS SEGMENT_FLAGS
ULONG_PTR Valid
Definition: mmtypes.h:828
struct _SEGMENT * PSEGMENT
struct _MAPPED_FILE_SEGMENT MAPPED_FILE_SEGMENT
struct _MSUBSECTION * PMSUBSECTION
ULONG Inherit
Definition: mmtypes.h:714
ULONG_PTR LongFlags
Definition: mmtypes.h:802
FILEOFFSET_INFORMATION e2
Definition: mmtypes.h:284
ULONG_PTR LongFlags
Definition: mmtypes.h:734
ULONG NumberOfCommittedPageTables
Definition: mmtypes.h:865
UINT64 SizeOfSegment
Definition: mmtypes.h:431
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:434
PVOID LeftChild
Definition: mmtypes.h:625
ULONG WorkingSetPrivateSize
Definition: mmtypes.h:924
ULONG PeakWorkingSetSize
Definition: mmtypes.h:909
ULONG_PTR SIZE_T
Definition: typedefs.h:79
ULONG NumberOfUserReferences
Definition: mmtypes.h:541
ULONG Available
Definition: mmtypes.h:890
struct _MEMORY_WORKING_SET_LIST * PMEMORY_WORKING_SET_LIST
LIST_ENTRY DereferenceList
Definition: mmtypes.h:591
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:567
struct _MMWSL MMWSL
ULONG LongFlags
Definition: mmtypes.h:566
union _MSUBSECTION::@2125 u2
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:590
struct _LARGE_CONTROL_AREA * PLARGE_CONTROL_AREA
ULONG Type
Definition: mmtypes.h:639
struct _SECTION_BASIC_INFORMATION SECTION_BASIC_INFORMATION
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:435
SLIST_ENTRY ListEntry
Definition: mmtypes.h:445
ULONG TrimHard
Definition: mmtypes.h:882
ULONG HashTableSize
Definition: mmtypes.h:864
ULONG_PTR LockedInMemory
Definition: mmtypes.h:830
struct _MMADDRESS_LIST * PMMADDRESS_LIST
unsigned short USHORT
Definition: pedump.c:61
ULONG ImageCommitment
Definition: mmtypes.h:609
ULONG FilePointerNull
Definition: mmtypes.h:474
SIZE_T MmHeapSegmentReserve
Definition: mminit.c:365
ULONG NumberOfImageWaiters
Definition: mmtypes.h:868
ULONG LengthHigh
Definition: mmtypes.h:638
ULONG MaximumWorkingSetHard
Definition: mmtypes.h:883
ULONG BeingDeleted
Definition: mmtypes.h:455
ULONG Mismatch
Definition: mmtypes.h:294
ULONG Spare0
Definition: mmtypes.h:911
ULONG FirstFree
Definition: mmtypes.h:856
ULONG WritableUserReferences
Definition: mmtypes.h:529
ULONG_PTR EndVpn
Definition: mmtypes.h:681
PSEGMENT Segment
Definition: mmtypes.h:513
SIZE_T PagefileUsage
Definition: pstypes.h:101
POBJECT_TYPE NTSYSAPI MmSectionObjectType
Definition: section.c:136
ULONG StartingSector4132
Definition: mmtypes.h:497
struct _PAGEDIR_INFORMATION PAGEDIR_INFORMATION
ULONG PtesInSubsection
Definition: mmtypes.h:589
MMADDRESS_NODE Address
Definition: mmtypes.h:812
union _CONTROL_AREA::@2121 u
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
ULONG NumberOfUserReferences
Definition: mmtypes.h:519
PVOID BaseAddress
Definition: mmtypes.h:605
ULONG FloppyMedia
Definition: mmtypes.h:469
struct _SECTION_BASIC_INFORMATION * PSECTION_BASIC_INFORMATION
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:803
ULONG ForceTrim
Definition: mmtypes.h:884
ULONG NumberOfPfnReferences
Definition: mmtypes.h:516
PMMPTE SubsectionBase
Definition: mmtypes.h:587
_In_ PLARGE_INTEGER FileOffset
Definition: cctypes.h:53
ULONG MemoryPriority
Definition: mmtypes.h:887
SIZE_T VirtualSize
Definition: pstypes.h:93
PVOID BasedAddress
Definition: mmtypes.h:410
ULONG DeleteOnClose
Definition: mmtypes.h:473
MMPTE SegmentPteTemplate
Definition: mmtypes.h:406
ULONG_PTR StartVpn
Definition: mmtypes.h:680
ULONG BaseAddrLow
Definition: mmtypes.h:635
ULONG_PTR Spare
Definition: mmtypes.h:698
enum _MI_VAD_TYPE * PMI_VAD_TYPE
struct _MMSUBSECTION_FLAGS MMSUBSECTION_FLAGS
PVOID ProtoPteAddress
Definition: mmtypes.h:298
ULONG WasPurged
Definition: mmtypes.h:470
enum _PP_NPAGED_LOOKASIDE_NUMBER PP_NPAGED_LOOKASIDE_NUMBER
ULONG Spare
Definition: mmtypes.h:923
MMSECTION_FLAGS Flags
Definition: mmtypes.h:523
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:549
PMMPTE FirstPrototypePte
Definition: mmtypes.h:767
ULONG CollidedFlush
Definition: mmtypes.h:477
struct _MM_AVL_TABLE MM_AVL_TABLE
union _MSUBSECTION::@2124 u
USHORT NextPageColor
Definition: mmtypes.h:903
PMMVAD RightChild
Definition: mmtypes.h:758
PMMPTE FirstPrototypePte
Definition: mmtypes.h:738
PKEVENT ExitEvent
Definition: mmtypes.h:933
ULONG NumberOfSectionReferences
Definition: mmtypes.h:537
Definition: File.h:15
struct _PAGEDIR_INFORMATION * PPAGEDIR_INFORMATION
struct _SEGMENT_OBJECT SEGMENT_OBJECT
struct _MMPFN_IDENTITY * PMMPFN_IDENTITY
ULONG UserWritable
Definition: mmtypes.h:481
unsigned long long UINT64
ULONG_PTR LockedInWs
Definition: mmtypes.h:829
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:99
PSEGMENT Segment
Definition: mmtypes.h:535
ULONG MaximumWorkingSetSize
Definition: mmtypes.h:916
union _MMVAD_LONG::@2133 u3
ULONG_PTR Protection
Definition: mmtypes.h:831
union _MMVAD::@2127 u1
struct _VM_COUNTERS_EX * PVM_COUNTERS_EX
struct _ADDRESS_RANGE * PADDRESS_RANGE
ULONG WorkingSetSize
Definition: mmtypes.h:931
ULONG_PTR Direct
Definition: mmtypes.h:833
struct _MMVAD_FLAGS2 MMVAD_FLAGS2
ULONG LastEntry
Definition: mmtypes.h:858
union _MMVAD::@2129 u2
ULONG UnusedPtes
Definition: mmtypes.h:572
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:111
PMMPTE PrototypePte
Definition: mmtypes.h:421
struct _MMVAD_LONG MMVAD_LONG
struct _MEMORY_SECTION_NAME MEMORY_SECTION_NAME
struct _MMVAD * PMMVAD
PMMPTE SubsectionBase
Definition: mmtypes.h:571
ULONG WritableUserReferences
Definition: mmtypes.h:551
ULONG WriteCombined
Definition: mmtypes.h:485
PVOID VirtualAddress
Definition: mmtypes.h:842
ULONG LongFlags2
Definition: mmtypes.h:595
ULONG_PTR VadType
Definition: mmtypes.h:695
ULONG LengthLow
Definition: mmtypes.h:637
ULONG BeingCreated
Definition: mmtypes.h:456
struct _MMADDRESS_NODE * Parent
Definition: mmtypes.h:650
PMMVAD LeftChild
Definition: mmtypes.h:796
struct _MMWSLE * PMMWSLE
struct _MMWSLE_HASH MMWSLE_HASH
struct _MMEXTEND_INFO MMEXTEND_INFO
struct _MMADDRESS_NODE * PMMADDRESS_NODE
ULONG LongFlags2
Definition: mmtypes.h:742
ULONG UnusedPtes
Definition: mmtypes.h:588
ULONG RefCount
Definition: mmtypes.h:446
union _MMVAD_LONG::@2130 u1
ULONG VadBitMapHint
Definition: mmtypes.h:869
PVOID RightChild
Definition: mmtypes.h:626
ULONG PtesInSubsection
Definition: mmtypes.h:573