ReactOS  0.4.14-dev-608-gd495a4f
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 {
319 
320 //
321 // Section Information Structures for NtQuerySection
322 //
324 {
329 
331 {
337  union
338  {
339  struct
340  {
343  };
345  };
351 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
352  union
353  {
354  struct
355  {
361  };
363  };
364 #else
365  BOOLEAN Spare1;
366 #endif
369 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
371 #else
372  ULONG Reserved[1];
373 #endif
375 
376 #ifndef NTOS_MODE_USER
377 
378 //
379 // Section Extension Information
380 //
381 typedef struct _MMEXTEND_INFO
382 {
386 
387 //
388 // Segment and Segment Flags
389 //
390 typedef struct _SEGMENT_FLAGS
391 {
397 
398 typedef struct _SEGMENT
399 {
410  union
411  {
414  } u1;
415  union
416  {
419  } u2;
422 } SEGMENT, *PSEGMENT;
423 
424 typedef struct _MAPPED_FILE_SEGMENT
425 {
438 
439 //
440 // Event Counter Structure
441 //
442 typedef struct _EVENT_COUNTER
443 {
448 
449 //
450 // Flags
451 //
452 typedef struct _MMSECTION_FLAGS
453 {
487 
488 typedef struct _MMSUBSECTION_FLAGS
489 {
499 
500 typedef struct _MMSUBSECTION_FLAGS2
501 {
506 
507 //
508 // Control Area Structures
509 //
510 typedef struct _CONTROL_AREA
511 {
519  union
520  {
523  } u;
531 
532 typedef struct _LARGE_CONTROL_AREA
533 {
541  union
542  {
545  } u;
556 
557 //
558 // Subsection and Mapped Subsection
559 //
560 typedef struct _SUBSECTION
561 {
563  union
564  {
567  } u;
575 
576 typedef struct _MSUBSECTION
577 {
579  union
580  {
583  } u;
592  union
593  {
596  } u2;
598 
599 //
600 // Segment Object
601 //
602 typedef struct _SEGMENT_OBJECT
603 {
615 
616 //
617 // Section Object
618 //
619 typedef struct _SECTION_OBJECT
620 {
628 
629 //
630 // Generic Address Range Structure
631 //
632 typedef struct _ADDRESS_RANGE
633 {
640 
641 //
642 // Node in Memory Manager's AVL Table
643 //
644 typedef struct _MMADDRESS_NODE
645 {
646  union
647  {
650  } u1;
656 
657 //
658 // Memory Manager AVL Table for VADs and other descriptors
659 //
660 typedef struct _MM_AVL_TABLE
661 {
665 #ifdef _WIN64
667 #else
669 #endif
673 
674 //
675 // Virtual Adress List used in VADs
676 //
677 typedef struct _MMADDRESS_LIST
678 {
682 
683 //
684 // Flags used in the VAD
685 //
686 typedef struct _MMVAD_FLAGS
687 {
688 #ifdef _WIN64
690 #else
692 #endif
700 
701 //
702 // Extended flags used in the VAD
703 //
704 typedef struct _MMVAD_FLAGS2
705 {
716 
717 //
718 // Virtual Address Descriptor (VAD) Structure
719 //
720 typedef struct _MMVAD
721 {
722  union
723  {
725  struct _MMVAD *Parent;
726  } u1;
727  struct _MMVAD *LeftChild;
731  union
732  {
735  } u;
739  union
740  {
743  } u2;
744 } MMVAD, *PMMVAD;
745 
746 //
747 // Long VAD used in section and private allocations
748 //
749 typedef struct _MMVAD_LONG
750 {
751  union
752  {
755  } u1;
760  union
761  {
764  } u;
768  union
769  {
772  } u2;
773  union
774  {
777  } u3;
778  union
779  {
782  } u4;
784 
785 //
786 // Short VAD used in virtual memory allocations
787 //
788 typedef struct _MMVAD_SHORT
789 {
790  union
791  {
794  } u1;
799  union
800  {
803  } u;
805 
806 //
807 // Actual Section Object
808 //
809 typedef struct _SECTION
810 {
814  union
815  {
818  } u;
820 } SECTION, *PSECTION;
821 
822 //
823 // Memory Manager Working Set Structures
824 //
825 typedef struct _MMWSLENTRY
826 {
836 
837 typedef struct _MMWSLE
838 {
839  union
840  {
844  } u1;
845 } MMWSLE, *PMMWSLE;
846 
847 typedef struct _MMWSLE_HASH
848 {
852 
853 typedef struct _MMWSL
854 {
871 } MMWSL, *PMMWSL;
872 
873 //
874 // Flags for Memory Support Structure
875 //
876 typedef struct _MMSUPPORT_FLAGS
877 {
891 
892 //
893 // Per-Process Memory Manager Data
894 //
895 typedef struct _MMSUPPORT
896 {
897 #if (NTDDI_VERSION >= NTDDI_WS03)
899 #endif
900 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
903 #else
904  LARGE_INTEGER LastTrimTime;
905 #endif
909 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
911 #else
912  ULONG GrowthSinceLastEstimate;
913 #endif
917 #if (NTDDI_VERSION < NTDDI_WS03)
919 #endif
921 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
925 #else
926  ULONG NextEstimationSlot;
927  ULONG NextAgingSlot;
928  ULONG EstimatedAvailable;
929 #endif
931 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
933 #endif
935 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
937 #endif
939 
940 //
941 // Memory Information Types
942 //
944 {
953 
954 //
955 // Driver Verifier Data
956 //
958 {
987 
988 //
989 // Internal Driver Verifier Table Data
990 //
992 {
997 
998 #ifdef __cplusplus
999 extern "C" {
1000 #endif
1001 
1002 //
1003 // Default heap size values. For user mode, these values are copied to a new
1004 // process's PEB by the kernel in MmCreatePeb. In kernel mode, RtlCreateHeap
1005 // reads these variables directly.
1006 //
1007 // These variables should be considered "const"; they are written only once,
1008 // during MmInitSystem.
1009 //
1014 
1015 //
1016 // Section Object Type
1017 //
1019 
1020 #ifdef __cplusplus
1021 }; // extern "C"
1022 #endif
1023 
1024 #endif // !NTOS_MODE_USER
1025 
1026 #ifdef __cplusplus
1027 } // extern "C"
1028 #endif
1029 
1030 #endif // _MMTYPES_H
LARGE_INTEGER Size
Definition: mmtypes.h:327
USHORT ModifiedWriteCount
Definition: mmtypes.h:526
ULONG NoChange
Definition: mmtypes.h:477
union _MMVAD::@2516 u2
ULONG CommittedPageTables[24]
Definition: mmtypes.h:870
ULONG_PTR EndingVpn
Definition: mmtypes.h:759
ULONG NoModifiedWriting
Definition: mmtypes.h:457
struct _MMSUPPORT_FLAGS * PMMSUPPORT_FLAGS
ULONG MinimumWorkingSetHard
Definition: mmtypes.h:884
ULONGLONG Reserved
Definition: mmtypes.h:266
SIZE_T PeakWorkingSetSize
Definition: pstypes.h:95
enum _SECTION_INFORMATION_CLASS SECTION_INFORMATION_CLASS
ULONG NumberOfMappedViews
Definition: mmtypes.h:538
PMMVAD RightChild
Definition: mmtypes.h:796
struct _VM_COUNTERS_EX * PVM_COUNTERS_EX
MMPTE SegmentPteTemplate
Definition: mmtypes.h:431
ULONG SubsectionConverted
Definition: mmtypes.h:503
LONG_PTR Balance
Definition: mmtypes.h:724
ULONG NumberOfCommittedPages
Definition: mmtypes.h:406
ULONG PageFaultCount
Definition: pstypes.h:108
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:525
ULONG Available0
Definition: mmtypes.h:885
PVOID AccessLog
Definition: mmtypes.h:936
PFILE_OBJECT FilePointer
Definition: mmtypes.h:524
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:97
struct _SECTION_OBJECT * PSECTION_OBJECT
PVOID StartingVa
Definition: mmtypes.h:621
ULONG StartingSector
Definition: mmtypes.h:584
ULONG ReadOnly
Definition: mmtypes.h:710
LONG_PTR Balance
Definition: mmtypes.h:753
_POOL_TYPE
Definition: ketypes.h:865
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:98
PVOID HashTableStart
Definition: mmtypes.h:865
ULONGLONG SizeOfSegment
Definition: mmtypes.h:404
ULONG UserReference
Definition: mmtypes.h:470
ULONG NumberOfSectionReferences
Definition: mmtypes.h:514
LARGE_INTEGER SizeOfSegment
Definition: mmtypes.h:606
ULONG ExtraSharedWowSubsections
Definition: mmtypes.h:393
PSEGMENT Segment
Definition: mmtypes.h:812
ULONG_PTR Age
Definition: mmtypes.h:833
SIZE_T WorkingSetSize
Definition: pstypes.h:96
USHORT UsedPageTableEntries[768]
Definition: mmtypes.h:869
#define MM_PAGE_FRAME_NUMBER_SIZE
Definition: mmtypes.h:38
ULONG NonExtendedPtes
Definition: mmtypes.h:402
ULONG Spare
Definition: mmtypes.h:395
struct _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION
ULONG BurstAllocationsFailedDeliberately
Definition: mmtypes.h:983
PMMVAD Parent
Definition: mmtypes.h:754
ULONG PhysicalMemory
Definition: mmtypes.h:464
ULONG Index
Definition: mmtypes.h:850
ULONG OneSecured
Definition: mmtypes.h:708
struct _MMWSLE_HASH * PMMWSLE_HASH
PCONTROL_AREA ControlArea
Definition: mmtypes.h:578
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:767
MMWSLENTRY e1
Definition: mmtypes.h:843
ULONG FirstDynamic
Definition: mmtypes.h:856
PSECTION_IMAGE_INFORMATION ImageInformation
Definition: mmtypes.h:417
ULONG CurrentPagedPoolAllocations
Definition: mmtypes.h:975
SIZE_T PeakPagefileUsage
Definition: pstypes.h:116
union _MSUBSECTION::@2512 u2
struct _MMWSLE MMWSLE
ULONG BeingPurged
Definition: mmtypes.h:456
ULONG InitialPageProtection
Definition: mmtypes.h:819
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:763
struct _LDR_DATA_TABLE_ENTRY * DataTableEntry
Definition: mmtypes.h:994
enum _SECTION_INHERIT SECTION_INHERIT
SIZE_T ImageCommitment
Definition: mmtypes.h:412
ULONG_PTR CommitCharge
Definition: mmtypes.h:691
_PP_NPAGED_LOOKASIDE_NUMBER
Definition: mmtypes.h:156
PMMWSL VmWorkingSetList
Definition: mmtypes.h:916
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:426
PCONTROL_AREA ControlArea
Definition: mmtypes.h:562
ULONG SectorEndOffset
Definition: mmtypes.h:497
MMPTE ThePtes[1]
Definition: mmtypes.h:421
enum _MI_VAD_TYPE MI_VAD_TYPE
struct _MEMORY_FRAME_INFORMATION * PMEMORY_FRAME_INFORMATION
MMSECTION_FLAGS Flags
Definition: mmtypes.h:544
ULONG LongFlags
Definition: mmtypes.h:581
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:517
PVOID HighestPermittedHashAddress
Definition: mmtypes.h:866
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:547
ULONG LargePages
Definition: mmtypes.h:394
ULONG_PTR NumberGenericTableElements
Definition: mmtypes.h:668
struct _SECTION_OBJECT SECTION_OBJECT
ULONG_PTR NumberOfMappedViews
Definition: mmtypes.h:591
ULONG PeakNonPagedPoolAllocations
Definition: mmtypes.h:978
SIZE_T PeakVirtualSize
Definition: pstypes.h:92
MEMORY_FRAME_INFORMATION e1
Definition: mmtypes.h:283
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:408
ULONG SessionLeader
Definition: mmtypes.h:880
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS DRIVER_SPECIFIED_VERIFIER_THUNKS
ULONG SecNoChange
Definition: mmtypes.h:707
ULONG_PTR Unused
Definition: mmtypes.h:664
PCONTROL_AREA ControlArea
Definition: mmtypes.h:765
struct _MMVAD_FLAGS * PMMVAD_FLAGS
ULONG_PTR Protection
Definition: mmtypes.h:696
SIZE_T WorkingSetSize
Definition: pstypes.h:110
ULONG LongVad
Definition: mmtypes.h:711
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:582
PMMVAD Parent
Definition: mmtypes.h:793
ULONG AcquiredUnsafe
Definition: mmtypes.h:888
SIZE_T QuotaNonPagedPoolUsage
Definition: pstypes.h:114
SIZE_T MmHeapSegmentCommit
Definition: mminit.c:367
struct _MSUBSECTION * LastSubsectionHint
Definition: mmtypes.h:436
PMMVAD LeftChild
Definition: mmtypes.h:756
ULONG MinimumWorkingSetSize
Definition: mmtypes.h:914
_MMLISTS
Definition: mmtypes.h:141
struct _MMADDRESS_LIST MMADDRESS_LIST
union _SEGMENT::@2507 u2
SIZE_T NumberOfCommittedPages
Definition: mmtypes.h:432
ULONG TotalNumberOfPtes
Definition: mmtypes.h:401
struct _EVENT_COUNTER * PEVENT_COUNTER
_MI_VAD_TYPE
Definition: mmtypes.h:192
PVOID FirstMappedVa
Definition: mmtypes.h:418
struct _SUBSECTION SUBSECTION
ULONG FailAllIo
Definition: mmtypes.h:458
ULONG_PTR DepthOfTree
Definition: mmtypes.h:663
ULONG_PTR LongFlags
Definition: mmtypes.h:762
#define NTSYSAPI
Definition: ntoskrnl.h:14
ULONG_PTR NoChange
Definition: mmtypes.h:693
KEVENT Event
Definition: mmtypes.h:446
PSEGMENT_OBJECT Segment
Definition: mmtypes.h:626
ULONG Networked
Definition: mmtypes.h:462
LONG_PTR Balance
Definition: mmtypes.h:648
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:734
ULONG WorkingSetSizeOverhead
Definition: mmtypes.h:924
ULONG LongFlags
Definition: mmtypes.h:816
struct _SEGMENT_OBJECT * PSEGMENT_OBJECT
LIST_ENTRY DereferenceList
Definition: mmtypes.h:535
_SECTION_INHERIT
Definition: nt_native.h:1277
struct _FILEOFFSET_INFORMATION FILEOFFSET_INFORMATION
ULONG AllocationsSucceededSpecialPool
Definition: mmtypes.h:965
ULONG BaseAddrHigh
Definition: mmtypes.h:635
struct _MM_DRIVER_VERIFIER_DATA * PMM_DRIVER_VERIFIER_DATA
struct _VM_COUNTERS_ VM_COUNTERS
USHORT LastTrimpStamp
Definition: mmtypes.h:901
MMADDRESS_NODE BalancedRoot
Definition: mmtypes.h:662
union _MMADDRESS_NODE::@2513 u1
ULONG_PTR Long
Definition: mmtypes.h:842
enum _MMLISTS MMLISTS
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:400
PVOID EndingVa
Definition: mmtypes.h:622
uint32_t ULONG_PTR
Definition: typedefs.h:63
ULONG ImageMappedInSystemSpace
Definition: mmtypes.h:479
MMADDRESS_LIST Secured
Definition: mmtypes.h:776
PEPROCESS CreatingProcess
Definition: mmtypes.h:413
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:539
struct _MMVAD MMVAD
struct _MMPFN_IDENTITY MMPFN_IDENTITY
ULONG_PTR EndingVpn
Definition: mmtypes.h:730
ULONG NumberOfFullSectors
Definition: mmtypes.h:569
_SECTION_INFORMATION_CLASS
Definition: mmtypes.h:183
ULONG PeakPagedPoolAllocations
Definition: mmtypes.h:977
PVOID UniqueFileObjectKey
Definition: mmtypes.h:297
ULONG BeingTrimmed
Definition: mmtypes.h:879
ULONG Spare0
Definition: mmtypes.h:403
struct _MEMORY_WORKING_SET_LIST MEMORY_WORKING_SET_LIST
struct _VM_COUNTERS_ * PVM_COUNTERS
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:573
struct _MMVAD * LeftChild
Definition: mmtypes.h:727
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:113
ULONG SessionSpace
Definition: mmtypes.h:878
LARGE_INTEGER SizeOfSection
Definition: mmtypes.h:813
ULONG NumberOfFullSectors
Definition: mmtypes.h:585
USHORT FlushInProgressCount
Definition: mmtypes.h:549
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:553
struct _MSUBSECTION MSUBSECTION
ULONG_PTR Hashed
Definition: mmtypes.h:831
PCONTROL_AREA ControlArea
Definition: mmtypes.h:736
struct _MMSUPPORT_FLAGS MMSUPPORT_FLAGS
PMMPTE LastContiguousPte
Definition: mmtypes.h:738
ULONG LongFlags2
Definition: mmtypes.h:770
ULONG ReferenceCount
Definition: mmtypes.h:384
struct _LARGE_CONTROL_AREA LARGE_CONTROL_AREA
unsigned char BOOLEAN
PVOID Parent
Definition: mmtypes.h:623
struct _MMSUBSECTION_FLAGS2 MMSUBSECTION_FLAGS2
UNIQUE_PROCESS_INFORMATION e4
Definition: mmtypes.h:286
ULONG NumberOfPfnReferences
Definition: mmtypes.h:537
struct _MMSUBSECTION_FLAGS * PMMSUBSECTION_FLAGS
ULONG_PTR StartingVpn
Definition: mmtypes.h:797
ULONG ExtendableFile
Definition: mmtypes.h:712
PVOID Banked
Definition: mmtypes.h:780
SIZE_T PrivateUsage
Definition: pstypes.h:117
union _MMPFN_IDENTITY::@2496 u2
struct _UNIQUE_PROCESS_INFORMATION UNIQUE_PROCESS_INFORMATION
union _SEGMENT::@2506 u1
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
struct _SECTION * PSECTION
ULONG LongFlags
Definition: mmtypes.h:521
ULONG NextSlot
Definition: mmtypes.h:858
ULONGLONG UseDescription
Definition: mmtypes.h:246
struct _SECTION SECTION
enum _MEMORY_INFORMATION_CLASS MEMORY_INFORMATION_CLASS
union _SECTION::@2524 u
SIZE_T MmHeapDeCommitTotalFreeThreshold
Definition: mminit.c:368
ULONG_PTR StartingVpn
Definition: mmtypes.h:729
ULONG_PTR StartingVpn
Definition: mmtypes.h:653
struct _MMWSLENTRY MMWSLENTRY
struct _MMADDRESS_NODE * LeftChild
Definition: mmtypes.h:651
USHORT FlushInProgressCount
Definition: mmtypes.h:527
union _MMVAD_LONG::@2521 u4
struct _MMADDRESS_NODE MMADDRESS_NODE
LIST_ENTRY DereferenceList
Definition: mmtypes.h:513
struct _MMVAD * Parent
Definition: mmtypes.h:725
PVOID NodeHint
Definition: mmtypes.h:670
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:742
ULONG_PTR MemCommit
Definition: mmtypes.h:695
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS * PDRIVER_SPECIFIED_VERIFIER_THUNKS
PAGEDIR_INFORMATION e3
Definition: mmtypes.h:285
ULONG MultipleSecured
Definition: mmtypes.h:709
union _MMVAD::@2514 u1
ULONG FileOffset
Definition: mmtypes.h:706
_MEMORY_INFORMATION_CLASS
Definition: mmtypes.h:171
ULONG_PTR EndingVpn
Definition: mmtypes.h:654
ULONG NonExtendedPtes
Definition: mmtypes.h:607
ULONG GlobalMemory
Definition: mmtypes.h:471
MMSUPPORT_FLAGS Flags
Definition: mmtypes.h:906
ULONG PageFaultCount
Definition: mmtypes.h:907
struct _MMSUPPORT * PMMSUPPORT
EX_PUSH_LOCK WorkingSetMutex
Definition: mmtypes.h:934
struct _CONTROL_AREA * PCONTROL_AREA
ULONG_PTR PrivateMemory
Definition: mmtypes.h:698
LIST_ENTRY WorkingSetExpansionLinks
Definition: mmtypes.h:898
ULONG QuadwordPad
Definition: mmtypes.h:529
struct _EVENT_COUNTER EVENT_COUNTER
PVOID Key
Definition: mmtypes.h:849
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:112
PCONTROL_AREA ControlArea
Definition: mmtypes.h:609
struct _VM_COUNTERS_EX VM_COUNTERS_EX
PMMSUBSECTION_FLAGS MmSubSectionFlags
Definition: mmtypes.h:613
struct _MEMORY_BASIC_INFORMATION * PMEMORY_BASIC_INFORMATION
struct _MMEXTEND_INFO * PMMEXTEND_INFO
ULONG GrowWsleHash
Definition: mmtypes.h:887
PMMEXTEND_INFO ExtendedInfo
Definition: mmtypes.h:781
struct _MEMORY_FRAME_INFORMATION MEMORY_FRAME_INFORMATION
struct _MMVAD_LONG * PMMVAD_LONG
SIZE_T PageFrameIndex
Definition: mmtypes.h:288
ULONG SubsectionStatic
Definition: mmtypes.h:492
INT POOL_TYPE
Definition: typedefs.h:76
struct _MMSUPPORT MMSUPPORT
ULONG LastInitializedWsle
Definition: mmtypes.h:860
uint64_t ULONGLONG
Definition: typedefs.h:65
ULONG TotalNumberOfPtes
Definition: mmtypes.h:605
PVOID NodeFreeHint
Definition: mmtypes.h:671
PVOID FileObject
Definition: mmtypes.h:296
ULONG_PTR StartingVpn
Definition: mmtypes.h:758
struct _SECTION_IMAGE_INFORMATION * PSECTION_IMAGE_INFORMATION
MMSUBSECTION_FLAGS2 SubsectionFlags2
Definition: mmtypes.h:595
ULONG StartingSector
Definition: mmtypes.h:568
ULONG TotalNumberOfPtes
Definition: mmtypes.h:427
union _MMVAD_SHORT::@2522 u1
SIZE_T VirtualSize
Definition: pstypes.h:107
union _MMVAD_LONG::@2520 u3
LIST_ENTRY List
Definition: mmtypes.h:775
struct _MMVAD_FLAGS MMVAD_FLAGS
PFILE_OBJECT FilePointer
Definition: mmtypes.h:546
PLARGE_CONTROL_AREA LargeControlArea
Definition: mmtypes.h:611
ULONGLONG ListDescription
Definition: mmtypes.h:247
struct _MMSECTION_FLAGS MMSECTION_FLAGS
struct _SEGMENT_FLAGS * PSEGMENT_FLAGS
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:771
ULONG DebugSymbolsLoaded
Definition: mmtypes.h:474
ULONGLONG PageDirectoryBase
Definition: mmtypes.h:265
LONG_PTR Balance
Definition: mmtypes.h:792
ULONG Accessed
Definition: mmtypes.h:481
ULONG_PTR VirtualPageNumber
Definition: mmtypes.h:834
union _MMPFN_IDENTITY::@2495 u1
struct _ADDRESS_RANGE ADDRESS_RANGE
union _MMVAD_SHORT::@2523 u
struct _MMSECTION_FLAGS * PMMSECTION_FLAGS
* PFILE_OBJECT
Definition: iotypes.h:1955
union _MMVAD_LONG::@2518 u
struct _MMVAD_SHORT MMVAD_SHORT
ULONG SubsectionAccessed
Definition: mmtypes.h:502
struct _MMADDRESS_NODE * RightChild
Definition: mmtypes.h:652
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
struct _CONTROL_AREA CONTROL_AREA
struct _SUBSECTION * PSUBSECTION
struct _MMVAD * RightChild
Definition: mmtypes.h:728
ULONG CurrentNonPagedPoolAllocations
Definition: mmtypes.h:976
ULONGLONG CommittedSize
Definition: mmtypes.h:383
struct _UNIQUE_PROCESS_INFORMATION * PUNIQUE_PROCESS_INFORMATION
ULONG_PTR EndingVpn
Definition: mmtypes.h:798
UNICODE_STRING SectionFileName
Definition: mmtypes.h:317
unsigned char UCHAR
Definition: xmlstorage.h:181
ULONG Claim
Definition: mmtypes.h:920
struct _MMVAD_FLAGS2 * PMMVAD_FLAGS2
ULONG SetMappedFileIoComplete
Definition: mmtypes.h:475
MMSECTION_FLAGS Flags
Definition: mmtypes.h:817
PMMWSLE Wsle
Definition: mmtypes.h:859
PMMWSLE_HASH HashTable
Definition: mmtypes.h:862
PSUBSECTION Subsection
Definition: mmtypes.h:610
union _MMVAD::@2515 u
ULONG TotalNumberOfPtes4132
Definition: mmtypes.h:392
struct _FILEOFFSET_INFORMATION * PFILEOFFSET_INFORMATION
struct _SEGMENT SEGMENT
PVOID VirtualAddress
Definition: mmtypes.h:299
ULONG AllocationsFailedDeliberately
Definition: mmtypes.h:970
ULONG GlobalOnlyPerSession
Definition: mmtypes.h:482
Definition: btrfs_drv.h:1853
ULONG CopyOnWrite
Definition: mmtypes.h:714
struct _MAPPED_FILE_SEGMENT * PMAPPED_FILE_SEGMENT
union _MMVAD_LONG::@2519 u2
union _SUBSECTION::@2510 u
ULONG NonDirectCount
Definition: mmtypes.h:861
PMMSECTION_FLAGS MmSectionFlags
Definition: mmtypes.h:612
Definition: typedefs.h:117
ULONG CopyOnWrite
Definition: mmtypes.h:465
ULONG NumberOfMappedViews
Definition: mmtypes.h:516
ULONG PageFaultCount
Definition: pstypes.h:94
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:407
union _MMWSLE::@2525 u1
struct _SEGMENT_FLAGS SEGMENT_FLAGS
ULONG_PTR Valid
Definition: mmtypes.h:827
struct _SEGMENT * PSEGMENT
struct _MAPPED_FILE_SEGMENT MAPPED_FILE_SEGMENT
struct _MSUBSECTION * PMSUBSECTION
ULONG Inherit
Definition: mmtypes.h:713
ULONG_PTR LongFlags
Definition: mmtypes.h:801
FILEOFFSET_INFORMATION e2
Definition: mmtypes.h:284
ULONG_PTR LongFlags
Definition: mmtypes.h:733
ULONG NumberOfCommittedPageTables
Definition: mmtypes.h:864
UINT64 SizeOfSegment
Definition: mmtypes.h:430
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:433
PVOID LeftChild
Definition: mmtypes.h:624
ULONG WorkingSetPrivateSize
Definition: mmtypes.h:923
ULONG PeakWorkingSetSize
Definition: mmtypes.h:908
ULONG_PTR SIZE_T
Definition: typedefs.h:78
ULONG NumberOfUserReferences
Definition: mmtypes.h:540
ULONG Available
Definition: mmtypes.h:889
struct _MEMORY_WORKING_SET_LIST * PMEMORY_WORKING_SET_LIST
LIST_ENTRY DereferenceList
Definition: mmtypes.h:590
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:566
struct _MMWSL MMWSL
ULONG LongFlags
Definition: mmtypes.h:565
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:589
struct _LARGE_CONTROL_AREA * PLARGE_CONTROL_AREA
ULONG Type
Definition: mmtypes.h:638
struct _SECTION_BASIC_INFORMATION SECTION_BASIC_INFORMATION
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:434
SLIST_ENTRY ListEntry
Definition: mmtypes.h:444
ULONG TrimHard
Definition: mmtypes.h:881
union _MSUBSECTION::@2511 u
ULONG HashTableSize
Definition: mmtypes.h:863
ULONG_PTR LockedInMemory
Definition: mmtypes.h:829
struct _MMADDRESS_LIST * PMMADDRESS_LIST
unsigned short USHORT
Definition: pedump.c:61
ULONG ImageCommitment
Definition: mmtypes.h:608
ULONG FilePointerNull
Definition: mmtypes.h:473
SIZE_T MmHeapSegmentReserve
Definition: mminit.c:366
ULONG NumberOfImageWaiters
Definition: mmtypes.h:867
ULONG LengthHigh
Definition: mmtypes.h:637
ULONG MaximumWorkingSetHard
Definition: mmtypes.h:882
ULONG BeingDeleted
Definition: mmtypes.h:454
ULONG Mismatch
Definition: mmtypes.h:294
ULONG Spare0
Definition: mmtypes.h:910
ULONG FirstFree
Definition: mmtypes.h:855
ULONG WritableUserReferences
Definition: mmtypes.h:528
ULONG_PTR EndVpn
Definition: mmtypes.h:680
PSEGMENT Segment
Definition: mmtypes.h:512
SIZE_T PagefileUsage
Definition: pstypes.h:101
POBJECT_TYPE NTSYSAPI MmSectionObjectType
Definition: section.c:136
ULONG StartingSector4132
Definition: mmtypes.h:496
struct _PAGEDIR_INFORMATION PAGEDIR_INFORMATION
ULONG PtesInSubsection
Definition: mmtypes.h:588
MMADDRESS_NODE Address
Definition: mmtypes.h:811
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
ULONG NumberOfUserReferences
Definition: mmtypes.h:518
PVOID BaseAddress
Definition: mmtypes.h:604
ULONG FloppyMedia
Definition: mmtypes.h:468
struct _SECTION_BASIC_INFORMATION * PSECTION_BASIC_INFORMATION
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:802
ULONG ForceTrim
Definition: mmtypes.h:883
ULONG NumberOfPfnReferences
Definition: mmtypes.h:515
#define SLIST_ENTRY(type)
Definition: queue.h:102
PMMPTE SubsectionBase
Definition: mmtypes.h:586
ULONG MemoryPriority
Definition: mmtypes.h:886
SIZE_T VirtualSize
Definition: pstypes.h:93
PVOID BasedAddress
Definition: mmtypes.h:409
ULONG DeleteOnClose
Definition: mmtypes.h:472
MMPTE SegmentPteTemplate
Definition: mmtypes.h:405
ULONG_PTR StartVpn
Definition: mmtypes.h:679
ULONG BaseAddrLow
Definition: mmtypes.h:634
ULONG_PTR Spare
Definition: mmtypes.h:697
enum _MI_VAD_TYPE * PMI_VAD_TYPE
struct _MMSUBSECTION_FLAGS MMSUBSECTION_FLAGS
PVOID ProtoPteAddress
Definition: mmtypes.h:298
ULONG WasPurged
Definition: mmtypes.h:469
enum _PP_NPAGED_LOOKASIDE_NUMBER PP_NPAGED_LOOKASIDE_NUMBER
ULONG Spare
Definition: mmtypes.h:922
MMSECTION_FLAGS Flags
Definition: mmtypes.h:522
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:548
PMMPTE FirstPrototypePte
Definition: mmtypes.h:766
ULONG CollidedFlush
Definition: mmtypes.h:476
struct _MM_AVL_TABLE MM_AVL_TABLE
union _CONTROL_AREA::@2508 u
USHORT NextPageColor
Definition: mmtypes.h:902
PMMVAD RightChild
Definition: mmtypes.h:757
PMMPTE FirstPrototypePte
Definition: mmtypes.h:737
PKEVENT ExitEvent
Definition: mmtypes.h:932
ULONG NumberOfSectionReferences
Definition: mmtypes.h:536
union _MMVAD_LONG::@2517 u1
struct _PAGEDIR_INFORMATION * PPAGEDIR_INFORMATION
struct _SEGMENT_OBJECT SEGMENT_OBJECT
struct _MMPFN_IDENTITY * PMMPFN_IDENTITY
ULONG UserWritable
Definition: mmtypes.h:480
unsigned long long UINT64
ULONG_PTR LockedInWs
Definition: mmtypes.h:828
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:99
PSEGMENT Segment
Definition: mmtypes.h:534
ULONG MaximumWorkingSetSize
Definition: mmtypes.h:915
ULONG_PTR Protection
Definition: mmtypes.h:830
struct _ADDRESS_RANGE * PADDRESS_RANGE
ULONG WorkingSetSize
Definition: mmtypes.h:930
ULONG_PTR Direct
Definition: mmtypes.h:832
struct _MMVAD_FLAGS2 MMVAD_FLAGS2
ULONG LastEntry
Definition: mmtypes.h:857
ULONG UnusedPtes
Definition: mmtypes.h:571
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:111
PMMPTE PrototypePte
Definition: mmtypes.h:420
struct _MMVAD_LONG MMVAD_LONG
struct _MEMORY_SECTION_NAME MEMORY_SECTION_NAME
struct _MMVAD * PMMVAD
PMMPTE SubsectionBase
Definition: mmtypes.h:570
ULONG WritableUserReferences
Definition: mmtypes.h:550
ULONG WriteCombined
Definition: mmtypes.h:484
PVOID VirtualAddress
Definition: mmtypes.h:841
ULONG LongFlags2
Definition: mmtypes.h:594
ULONG_PTR VadType
Definition: mmtypes.h:694
union _LARGE_CONTROL_AREA::@2509 u
ULONG LengthLow
Definition: mmtypes.h:636
ULONG BeingCreated
Definition: mmtypes.h:455
struct _MMADDRESS_NODE * Parent
Definition: mmtypes.h:649
PMMVAD LeftChild
Definition: mmtypes.h:795
struct _MMWSLE * PMMWSLE
struct _MMWSLE_HASH MMWSLE_HASH
struct _MMEXTEND_INFO MMEXTEND_INFO
struct _MMADDRESS_NODE * PMMADDRESS_NODE
ULONG LongFlags2
Definition: mmtypes.h:741
ULONG UnusedPtes
Definition: mmtypes.h:587
ULONG RefCount
Definition: mmtypes.h:445
ULONG VadBitMapHint
Definition: mmtypes.h:868
PVOID RightChild
Definition: mmtypes.h:625
ULONG PtesInSubsection
Definition: mmtypes.h:572