ReactOS  0.4.15-dev-439-g292f67a
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 (8-byte aligned)
509 //
510 typedef struct _CONTROL_AREA
511 {
519  union
520  {
523  } u;
531 C_ASSERT((sizeof(CONTROL_AREA) % 8) == 0);
532 
533 typedef struct _LARGE_CONTROL_AREA
534 {
542  union
543  {
546  } u;
557 C_ASSERT((sizeof(LARGE_CONTROL_AREA) % 8) == 0);
558 
559 //
560 // Subsection and Mapped Subsection (8-byte aligned)
561 //
562 typedef struct _SUBSECTION
563 {
565  union
566  {
569  } u;
577 C_ASSERT((sizeof(SUBSECTION) % 8) == 0);
578 
579 typedef struct _MSUBSECTION
580 {
582  union
583  {
586  } u;
595  union
596  {
599  } u2;
601 C_ASSERT((sizeof(MSUBSECTION) % 8) == 0);
602 
603 //
604 // Segment Object
605 //
606 typedef struct _SEGMENT_OBJECT
607 {
619 
620 //
621 // Section Object
622 //
623 typedef struct _SECTION_OBJECT
624 {
632 
633 //
634 // Generic Address Range Structure
635 //
636 typedef struct _ADDRESS_RANGE
637 {
644 
645 //
646 // Node in Memory Manager's AVL Table
647 //
648 typedef struct _MMADDRESS_NODE
649 {
650  union
651  {
654  } u1;
660 
661 //
662 // Memory Manager AVL Table for VADs and other descriptors
663 //
664 typedef struct _MM_AVL_TABLE
665 {
669 #ifdef _WIN64
671 #else
673 #endif
677 
678 //
679 // Virtual Adress List used in VADs
680 //
681 typedef struct _MMADDRESS_LIST
682 {
686 
687 //
688 // Flags used in the VAD
689 //
690 typedef struct _MMVAD_FLAGS
691 {
692 #ifdef _WIN64
694 #else
696 #endif
704 
705 //
706 // Extended flags used in the VAD
707 //
708 typedef struct _MMVAD_FLAGS2
709 {
720 
721 //
722 // Virtual Address Descriptor (VAD) Structure
723 //
724 typedef struct _MMVAD
725 {
726  union
727  {
729  struct _MMVAD *Parent;
730  } u1;
731  struct _MMVAD *LeftChild;
735  union
736  {
739  } u;
743  union
744  {
747  } u2;
748 } MMVAD, *PMMVAD;
749 
750 //
751 // Long VAD used in section and private allocations
752 //
753 typedef struct _MMVAD_LONG
754 {
755  union
756  {
759  } u1;
764  union
765  {
768  } u;
772  union
773  {
776  } u2;
777  union
778  {
781  } u3;
782  union
783  {
786  } u4;
788 
789 //
790 // Short VAD used in virtual memory allocations
791 //
792 typedef struct _MMVAD_SHORT
793 {
794  union
795  {
798  } u1;
803  union
804  {
807  } u;
809 
810 //
811 // Actual Section Object
812 //
813 typedef struct _SECTION
814 {
818  union
819  {
822  } u;
824 } SECTION, *PSECTION;
825 
826 //
827 // Memory Manager Working Set Structures
828 //
829 typedef struct _MMWSLENTRY
830 {
840 
841 typedef struct _MMWSLE
842 {
843  union
844  {
848  } u1;
849 } MMWSLE, *PMMWSLE;
850 
851 typedef struct _MMWSLE_HASH
852 {
856 
857 typedef struct _MMWSL
858 {
875 } MMWSL, *PMMWSL;
876 
877 //
878 // Flags for Memory Support Structure
879 //
880 typedef struct _MMSUPPORT_FLAGS
881 {
895 
896 //
897 // Per-Process Memory Manager Data
898 //
899 typedef struct _MMSUPPORT
900 {
901 #if (NTDDI_VERSION >= NTDDI_WS03)
903 #endif
904 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
907 #else
908  LARGE_INTEGER LastTrimTime;
909 #endif
913 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
915 #else
916  ULONG GrowthSinceLastEstimate;
917 #endif
921 #if (NTDDI_VERSION < NTDDI_WS03)
923 #endif
925 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
929 #else
930  ULONG NextEstimationSlot;
931  ULONG NextAgingSlot;
932  ULONG EstimatedAvailable;
933 #endif
935 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
937 #endif
939 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
941 #endif
943 
944 //
945 // Memory Information Types
946 //
948 {
957 
958 //
959 // Driver Verifier Data
960 //
962 {
991 
992 //
993 // Internal Driver Verifier Table Data
994 //
996 {
1001 
1002 #ifdef __cplusplus
1003 extern "C" {
1004 #endif
1005 
1006 //
1007 // Default heap size values. For user mode, these values are copied to a new
1008 // process's PEB by the kernel in MmCreatePeb. In kernel mode, RtlCreateHeap
1009 // reads these variables directly.
1010 //
1011 // These variables should be considered "const"; they are written only once,
1012 // during MmInitSystem.
1013 //
1018 
1019 //
1020 // Section Object Type
1021 //
1023 
1024 #ifdef __cplusplus
1025 }; // extern "C"
1026 #endif
1027 
1028 #endif // !NTOS_MODE_USER
1029 
1030 #ifdef __cplusplus
1031 } // extern "C"
1032 #endif
1033 
1034 #endif // _MMTYPES_H
LARGE_INTEGER Size
Definition: mmtypes.h:327
USHORT ModifiedWriteCount
Definition: mmtypes.h:526
ULONG NoChange
Definition: mmtypes.h:477
union _SUBSECTION::@2535 u
ULONG CommittedPageTables[24]
Definition: mmtypes.h:874
ULONG_PTR EndingVpn
Definition: mmtypes.h:763
ULONG NoModifiedWriting
Definition: mmtypes.h:457
struct _MMSUPPORT_FLAGS * PMMSUPPORT_FLAGS
ULONG MinimumWorkingSetHard
Definition: mmtypes.h:888
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:539
PMMVAD RightChild
Definition: mmtypes.h:800
struct _VM_COUNTERS_EX * PVM_COUNTERS_EX
MMPTE SegmentPteTemplate
Definition: mmtypes.h:431
struct _VM_COUNTERS_ * PVM_COUNTERS
ULONG SubsectionConverted
Definition: mmtypes.h:503
LONG_PTR Balance
Definition: mmtypes.h:728
ULONG NumberOfCommittedPages
Definition: mmtypes.h:406
ULONG PageFaultCount
Definition: pstypes.h:108
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:525
ULONG Available0
Definition: mmtypes.h:889
PVOID AccessLog
Definition: mmtypes.h:940
union _MSUBSECTION::@2536 u
PFILE_OBJECT FilePointer
Definition: mmtypes.h:524
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:97
struct _SECTION_OBJECT * PSECTION_OBJECT
PVOID StartingVa
Definition: mmtypes.h:625
ULONG StartingSector
Definition: mmtypes.h:587
ULONG ReadOnly
Definition: mmtypes.h:714
union _MMVAD::@2541 u2
LONG_PTR Balance
Definition: mmtypes.h:757
_POOL_TYPE
Definition: ketypes.h:865
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:98
PVOID HashTableStart
Definition: mmtypes.h:869
ULONGLONG SizeOfSegment
Definition: mmtypes.h:404
ULONG UserReference
Definition: mmtypes.h:470
ULONG NumberOfSectionReferences
Definition: mmtypes.h:514
LARGE_INTEGER SizeOfSegment
Definition: mmtypes.h:610
ULONG ExtraSharedWowSubsections
Definition: mmtypes.h:393
PSEGMENT Segment
Definition: mmtypes.h:816
ULONG_PTR Age
Definition: mmtypes.h:837
SIZE_T WorkingSetSize
Definition: pstypes.h:96
USHORT UsedPageTableEntries[768]
Definition: mmtypes.h:873
#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:987
PMMVAD Parent
Definition: mmtypes.h:758
ULONG PhysicalMemory
Definition: mmtypes.h:464
ULONG Index
Definition: mmtypes.h:854
ULONG OneSecured
Definition: mmtypes.h:712
struct _MMWSLE_HASH * PMMWSLE_HASH
PCONTROL_AREA ControlArea
Definition: mmtypes.h:581
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:771
MMWSLENTRY e1
Definition: mmtypes.h:847
ULONG FirstDynamic
Definition: mmtypes.h:860
PSECTION_IMAGE_INFORMATION ImageInformation
Definition: mmtypes.h:417
ULONG CurrentPagedPoolAllocations
Definition: mmtypes.h:979
SIZE_T PeakPagefileUsage
Definition: pstypes.h:116
struct _MMWSLE MMWSLE
ULONG BeingPurged
Definition: mmtypes.h:456
ULONG InitialPageProtection
Definition: mmtypes.h:823
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:767
struct _LDR_DATA_TABLE_ENTRY * DataTableEntry
Definition: mmtypes.h:998
union _MMVAD_LONG::@2544 u2
enum _SECTION_INHERIT SECTION_INHERIT
SIZE_T ImageCommitment
Definition: mmtypes.h:412
ULONG_PTR CommitCharge
Definition: mmtypes.h:695
_PP_NPAGED_LOOKASIDE_NUMBER
Definition: mmtypes.h:156
PMMWSL VmWorkingSetList
Definition: mmtypes.h:920
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:426
PCONTROL_AREA ControlArea
Definition: mmtypes.h:564
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:545
ULONG LongFlags
Definition: mmtypes.h:584
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:517
PVOID HighestPermittedHashAddress
Definition: mmtypes.h:870
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:548
ULONG LargePages
Definition: mmtypes.h:394
ULONG_PTR NumberGenericTableElements
Definition: mmtypes.h:672
struct _SECTION_OBJECT SECTION_OBJECT
ULONG_PTR NumberOfMappedViews
Definition: mmtypes.h:594
ULONG PeakNonPagedPoolAllocations
Definition: mmtypes.h:982
SIZE_T PeakVirtualSize
Definition: pstypes.h:92
union _SECTION::@2549 u
MEMORY_FRAME_INFORMATION e1
Definition: mmtypes.h:283
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:408
ULONG SessionLeader
Definition: mmtypes.h:884
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS DRIVER_SPECIFIED_VERIFIER_THUNKS
ULONG SecNoChange
Definition: mmtypes.h:711
ULONG_PTR Unused
Definition: mmtypes.h:668
PCONTROL_AREA ControlArea
Definition: mmtypes.h:769
struct _MMVAD_FLAGS * PMMVAD_FLAGS
ULONG_PTR Protection
Definition: mmtypes.h:700
SIZE_T WorkingSetSize
Definition: pstypes.h:110
ULONG LongVad
Definition: mmtypes.h:715
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:585
PMMVAD Parent
Definition: mmtypes.h:797
ULONG AcquiredUnsafe
Definition: mmtypes.h:892
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:760
ULONG MinimumWorkingSetSize
Definition: mmtypes.h:918
_MMLISTS
Definition: mmtypes.h:141
struct _MMADDRESS_LIST MMADDRESS_LIST
union _MSUBSECTION::@2537 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:667
ULONG_PTR LongFlags
Definition: mmtypes.h:766
#define NTSYSAPI
Definition: ntoskrnl.h:14
ULONG_PTR NoChange
Definition: mmtypes.h:697
KEVENT Event
Definition: mmtypes.h:446
PSEGMENT_OBJECT Segment
Definition: mmtypes.h:630
ULONG Networked
Definition: mmtypes.h:462
LONG_PTR Balance
Definition: mmtypes.h:652
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:738
ULONG WorkingSetSizeOverhead
Definition: mmtypes.h:928
ULONG LongFlags
Definition: mmtypes.h:820
struct _SEGMENT_OBJECT * PSEGMENT_OBJECT
LIST_ENTRY DereferenceList
Definition: mmtypes.h:536
_SECTION_INHERIT
Definition: nt_native.h:1277
struct _FILEOFFSET_INFORMATION FILEOFFSET_INFORMATION
ULONG AllocationsSucceededSpecialPool
Definition: mmtypes.h:969
ULONG BaseAddrHigh
Definition: mmtypes.h:639
struct _MM_DRIVER_VERIFIER_DATA * PMM_DRIVER_VERIFIER_DATA
USHORT LastTrimpStamp
Definition: mmtypes.h:905
MMADDRESS_NODE BalancedRoot
Definition: mmtypes.h:666
union _MMADDRESS_NODE::@2538 u1
ULONG_PTR Long
Definition: mmtypes.h:846
enum _MMLISTS MMLISTS
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:400
PVOID EndingVa
Definition: mmtypes.h:626
uint32_t ULONG_PTR
Definition: typedefs.h:64
ULONG ImageMappedInSystemSpace
Definition: mmtypes.h:479
MMADDRESS_LIST Secured
Definition: mmtypes.h:780
PEPROCESS CreatingProcess
Definition: mmtypes.h:413
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:540
struct _MMVAD MMVAD
struct _MMPFN_IDENTITY MMPFN_IDENTITY
ULONG_PTR EndingVpn
Definition: mmtypes.h:734
ULONG NumberOfFullSectors
Definition: mmtypes.h:571
union _MMVAD_LONG::@2545 u3
union _MMVAD_SHORT::@2548 u
_SECTION_INFORMATION_CLASS
Definition: mmtypes.h:183
ULONG PeakPagedPoolAllocations
Definition: mmtypes.h:981
PVOID UniqueFileObjectKey
Definition: mmtypes.h:297
ULONG BeingTrimmed
Definition: mmtypes.h:883
ULONG Spare0
Definition: mmtypes.h:403
struct _MEMORY_WORKING_SET_LIST MEMORY_WORKING_SET_LIST
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:575
struct _MMVAD * LeftChild
Definition: mmtypes.h:731
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:113
ULONG SessionSpace
Definition: mmtypes.h:882
LARGE_INTEGER SizeOfSection
Definition: mmtypes.h:817
ULONG NumberOfFullSectors
Definition: mmtypes.h:588
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:835
PCONTROL_AREA ControlArea
Definition: mmtypes.h:740
struct _MMSUPPORT_FLAGS MMSUPPORT_FLAGS
PMMPTE LastContiguousPte
Definition: mmtypes.h:742
ULONG LongFlags2
Definition: mmtypes.h:774
ULONG ReferenceCount
Definition: mmtypes.h:384
struct _LARGE_CONTROL_AREA LARGE_CONTROL_AREA
unsigned char BOOLEAN
PVOID Parent
Definition: mmtypes.h:627
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:801
ULONG ExtendableFile
Definition: mmtypes.h:716
PVOID Banked
Definition: mmtypes.h:784
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:521
ULONG NextSlot
Definition: mmtypes.h:862
ULONGLONG UseDescription
Definition: mmtypes.h:246
struct _SECTION SECTION
enum _MEMORY_INFORMATION_CLASS MEMORY_INFORMATION_CLASS
SIZE_T MmHeapDeCommitTotalFreeThreshold
Definition: mminit.c:368
ULONG_PTR StartingVpn
Definition: mmtypes.h:733
ULONG_PTR StartingVpn
Definition: mmtypes.h:657
struct _MMWSLENTRY MMWSLENTRY
struct _MMADDRESS_NODE * LeftChild
Definition: mmtypes.h:655
USHORT FlushInProgressCount
Definition: mmtypes.h:527
union _MMWSLE::@2550 u1
struct _MMADDRESS_NODE MMADDRESS_NODE
LIST_ENTRY DereferenceList
Definition: mmtypes.h:513
struct _MMVAD * Parent
Definition: mmtypes.h:729
PVOID NodeHint
Definition: mmtypes.h:674
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:746
ULONG_PTR MemCommit
Definition: mmtypes.h:699
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS * PDRIVER_SPECIFIED_VERIFIER_THUNKS
PAGEDIR_INFORMATION e3
Definition: mmtypes.h:285
ULONG MultipleSecured
Definition: mmtypes.h:713
ULONG FileOffset
Definition: mmtypes.h:710
_MEMORY_INFORMATION_CLASS
Definition: mmtypes.h:171
ULONG_PTR EndingVpn
Definition: mmtypes.h:658
ULONG NonExtendedPtes
Definition: mmtypes.h:611
ULONG GlobalMemory
Definition: mmtypes.h:471
MMSUPPORT_FLAGS Flags
Definition: mmtypes.h:910
ULONG PageFaultCount
Definition: mmtypes.h:911
struct _MMSUPPORT * PMMSUPPORT
EX_PUSH_LOCK WorkingSetMutex
Definition: mmtypes.h:938
struct _CONTROL_AREA * PCONTROL_AREA
union _MMVAD_LONG::@2543 u
ULONG_PTR PrivateMemory
Definition: mmtypes.h:702
LIST_ENTRY WorkingSetExpansionLinks
Definition: mmtypes.h:902
ULONG QuadwordPad
Definition: mmtypes.h:529
struct _EVENT_COUNTER EVENT_COUNTER
PVOID Key
Definition: mmtypes.h:853
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:112
PCONTROL_AREA ControlArea
Definition: mmtypes.h:613
struct _VM_COUNTERS_EX VM_COUNTERS_EX
PMMSUBSECTION_FLAGS MmSubSectionFlags
Definition: mmtypes.h:617
struct _MEMORY_BASIC_INFORMATION * PMEMORY_BASIC_INFORMATION
struct _MMEXTEND_INFO * PMMEXTEND_INFO
ULONG GrowWsleHash
Definition: mmtypes.h:891
PMMEXTEND_INFO ExtendedInfo
Definition: mmtypes.h:785
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:77
struct _MMSUPPORT MMSUPPORT
ULONG LastInitializedWsle
Definition: mmtypes.h:864
uint64_t ULONGLONG
Definition: typedefs.h:66
ULONG TotalNumberOfPtes
Definition: mmtypes.h:609
PVOID NodeFreeHint
Definition: mmtypes.h:675
PVOID FileObject
Definition: mmtypes.h:296
ULONG_PTR StartingVpn
Definition: mmtypes.h:762
struct _SECTION_IMAGE_INFORMATION * PSECTION_IMAGE_INFORMATION
MMSUBSECTION_FLAGS2 SubsectionFlags2
Definition: mmtypes.h:598
ULONG StartingSector
Definition: mmtypes.h:570
ULONG TotalNumberOfPtes
Definition: mmtypes.h:427
SIZE_T VirtualSize
Definition: pstypes.h:107
LIST_ENTRY List
Definition: mmtypes.h:779
struct _MMVAD_FLAGS MMVAD_FLAGS
PFILE_OBJECT FilePointer
Definition: mmtypes.h:547
PLARGE_CONTROL_AREA LargeControlArea
Definition: mmtypes.h:615
ULONGLONG ListDescription
Definition: mmtypes.h:247
struct _MMSECTION_FLAGS MMSECTION_FLAGS
struct _SEGMENT_FLAGS * PSEGMENT_FLAGS
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:775
ULONG DebugSymbolsLoaded
Definition: mmtypes.h:474
ULONGLONG PageDirectoryBase
Definition: mmtypes.h:265
LONG_PTR Balance
Definition: mmtypes.h:796
ULONG Accessed
Definition: mmtypes.h:481
ULONG_PTR VirtualPageNumber
Definition: mmtypes.h:838
struct _ADDRESS_RANGE ADDRESS_RANGE
struct _MMSECTION_FLAGS * PMMSECTION_FLAGS
* PFILE_OBJECT
Definition: iotypes.h:1955
struct _MMVAD_SHORT MMVAD_SHORT
ULONG SubsectionAccessed
Definition: mmtypes.h:502
struct _MMADDRESS_NODE * RightChild
Definition: mmtypes.h:656
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:732
ULONG CurrentNonPagedPoolAllocations
Definition: mmtypes.h:980
ULONGLONG CommittedSize
Definition: mmtypes.h:383
struct _UNIQUE_PROCESS_INFORMATION * PUNIQUE_PROCESS_INFORMATION
ULONG_PTR EndingVpn
Definition: mmtypes.h:802
UNICODE_STRING SectionFileName
Definition: mmtypes.h:317
unsigned char UCHAR
Definition: xmlstorage.h:181
ULONG Claim
Definition: mmtypes.h:924
struct _MMVAD_FLAGS2 * PMMVAD_FLAGS2
ULONG SetMappedFileIoComplete
Definition: mmtypes.h:475
MMSECTION_FLAGS Flags
Definition: mmtypes.h:821
PMMWSLE Wsle
Definition: mmtypes.h:863
PMMWSLE_HASH HashTable
Definition: mmtypes.h:866
PSUBSECTION Subsection
Definition: mmtypes.h:614
ULONG TotalNumberOfPtes4132
Definition: mmtypes.h:392
struct _FILEOFFSET_INFORMATION * PFILEOFFSET_INFORMATION
struct _SEGMENT SEGMENT
PVOID VirtualAddress
Definition: mmtypes.h:299
union _SEGMENT::@2532 u2
ULONG AllocationsFailedDeliberately
Definition: mmtypes.h:974
ULONG GlobalOnlyPerSession
Definition: mmtypes.h:482
Definition: btrfs_drv.h:1922
ULONG CopyOnWrite
Definition: mmtypes.h:718
struct _MAPPED_FILE_SEGMENT * PMAPPED_FILE_SEGMENT
union _MMVAD_LONG::@2546 u4
ULONG NonDirectCount
Definition: mmtypes.h:865
PMMSECTION_FLAGS MmSectionFlags
Definition: mmtypes.h:616
Definition: typedefs.h:118
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
struct _SEGMENT_FLAGS SEGMENT_FLAGS
ULONG_PTR Valid
Definition: mmtypes.h:831
struct _SEGMENT * PSEGMENT
struct _MAPPED_FILE_SEGMENT MAPPED_FILE_SEGMENT
struct _MSUBSECTION * PMSUBSECTION
ULONG Inherit
Definition: mmtypes.h:717
ULONG_PTR LongFlags
Definition: mmtypes.h:805
FILEOFFSET_INFORMATION e2
Definition: mmtypes.h:284
ULONG_PTR LongFlags
Definition: mmtypes.h:737
ULONG NumberOfCommittedPageTables
Definition: mmtypes.h:868
UINT64 SizeOfSegment
Definition: mmtypes.h:430
union _MMVAD_SHORT::@2547 u1
union _LARGE_CONTROL_AREA::@2534 u
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:433
PVOID LeftChild
Definition: mmtypes.h:628
ULONG WorkingSetPrivateSize
Definition: mmtypes.h:927
ULONG PeakWorkingSetSize
Definition: mmtypes.h:912
ULONG_PTR SIZE_T
Definition: typedefs.h:79
ULONG NumberOfUserReferences
Definition: mmtypes.h:541
ULONG Available
Definition: mmtypes.h:893
struct _MEMORY_WORKING_SET_LIST * PMEMORY_WORKING_SET_LIST
LIST_ENTRY DereferenceList
Definition: mmtypes.h:593
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:568
struct _MMWSL MMWSL
ULONG LongFlags
Definition: mmtypes.h:567
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:592
struct _LARGE_CONTROL_AREA * PLARGE_CONTROL_AREA
ULONG Type
Definition: mmtypes.h:642
struct _SECTION_BASIC_INFORMATION SECTION_BASIC_INFORMATION
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:434
SLIST_ENTRY ListEntry
Definition: mmtypes.h:444
union _MMPFN_IDENTITY::@2521 u2
ULONG TrimHard
Definition: mmtypes.h:885
ULONG HashTableSize
Definition: mmtypes.h:867
ULONG_PTR LockedInMemory
Definition: mmtypes.h:833
struct _MMADDRESS_LIST * PMMADDRESS_LIST
unsigned short USHORT
Definition: pedump.c:61
ULONG ImageCommitment
Definition: mmtypes.h:612
ULONG FilePointerNull
Definition: mmtypes.h:473
SIZE_T MmHeapSegmentReserve
Definition: mminit.c:366
ULONG NumberOfImageWaiters
Definition: mmtypes.h:871
union _MMVAD::@2540 u
ULONG LengthHigh
Definition: mmtypes.h:641
struct _MEMORY_SECTION_NAME MEMORY_SECTION_NAME
ULONG MaximumWorkingSetHard
Definition: mmtypes.h:886
ULONG BeingDeleted
Definition: mmtypes.h:454
ULONG Mismatch
Definition: mmtypes.h:294
ULONG Spare0
Definition: mmtypes.h:914
ULONG FirstFree
Definition: mmtypes.h:859
ULONG WritableUserReferences
Definition: mmtypes.h:528
ULONG_PTR EndVpn
Definition: mmtypes.h:684
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:591
MMADDRESS_NODE Address
Definition: mmtypes.h:815
C_ASSERT(sizeof(HARDWARE_PDE_ARMV6)==sizeof(ULONG))
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
ULONG NumberOfUserReferences
Definition: mmtypes.h:518
PVOID BaseAddress
Definition: mmtypes.h:608
ULONG FloppyMedia
Definition: mmtypes.h:468
struct _SECTION_BASIC_INFORMATION * PSECTION_BASIC_INFORMATION
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:806
ULONG ForceTrim
Definition: mmtypes.h:887
ULONG NumberOfPfnReferences
Definition: mmtypes.h:515
#define SLIST_ENTRY(type)
Definition: queue.h:102
PMMPTE SubsectionBase
Definition: mmtypes.h:589
union _MMPFN_IDENTITY::@2520 u1
ULONG MemoryPriority
Definition: mmtypes.h:890
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:683
ULONG BaseAddrLow
Definition: mmtypes.h:638
ULONG_PTR Spare
Definition: mmtypes.h:701
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:926
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:549
PMMPTE FirstPrototypePte
Definition: mmtypes.h:770
ULONG CollidedFlush
Definition: mmtypes.h:476
struct _MM_AVL_TABLE MM_AVL_TABLE
union _CONTROL_AREA::@2533 u
USHORT NextPageColor
Definition: mmtypes.h:906
PMMVAD RightChild
Definition: mmtypes.h:761
PMMPTE FirstPrototypePte
Definition: mmtypes.h:741
PKEVENT ExitEvent
Definition: mmtypes.h:936
union _MMVAD::@2539 u1
ULONG NumberOfSectionReferences
Definition: mmtypes.h:537
union _MMVAD_LONG::@2542 u1
struct _PAGEDIR_INFORMATION * PPAGEDIR_INFORMATION
struct _SEGMENT_OBJECT SEGMENT_OBJECT
struct _MMPFN_IDENTITY * PMMPFN_IDENTITY
ULONG UserWritable
Definition: mmtypes.h:480
struct _VM_COUNTERS_ VM_COUNTERS
unsigned long long UINT64
ULONG_PTR LockedInWs
Definition: mmtypes.h:832
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:99
PSEGMENT Segment
Definition: mmtypes.h:535
ULONG MaximumWorkingSetSize
Definition: mmtypes.h:919
ULONG_PTR Protection
Definition: mmtypes.h:834
struct _ADDRESS_RANGE * PADDRESS_RANGE
ULONG WorkingSetSize
Definition: mmtypes.h:934
ULONG_PTR Direct
Definition: mmtypes.h:836
struct _MMVAD_FLAGS2 MMVAD_FLAGS2
ULONG LastEntry
Definition: mmtypes.h:861
ULONG UnusedPtes
Definition: mmtypes.h:573
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:111
PMMPTE PrototypePte
Definition: mmtypes.h:420
struct _MMVAD_LONG MMVAD_LONG
struct _MMVAD * PMMVAD
PMMPTE SubsectionBase
Definition: mmtypes.h:572
ULONG WritableUserReferences
Definition: mmtypes.h:551
ULONG WriteCombined
Definition: mmtypes.h:484
PVOID VirtualAddress
Definition: mmtypes.h:845
ULONG LongFlags2
Definition: mmtypes.h:597
ULONG_PTR VadType
Definition: mmtypes.h:698
ULONG LengthLow
Definition: mmtypes.h:640
ULONG BeingCreated
Definition: mmtypes.h:455
struct _MMADDRESS_NODE * Parent
Definition: mmtypes.h:653
PMMVAD LeftChild
Definition: mmtypes.h:799
struct _MMWSLE * PMMWSLE
struct _MMWSLE_HASH MMWSLE_HASH
struct _MMEXTEND_INFO MMEXTEND_INFO
struct _MMADDRESS_NODE * PMMADDRESS_NODE
ULONG LongFlags2
Definition: mmtypes.h:745
union _SEGMENT::@2531 u1
ULONG UnusedPtes
Definition: mmtypes.h:590
ULONG RefCount
Definition: mmtypes.h:445
ULONG VadBitMapHint
Definition: mmtypes.h:872
PVOID RightChild
Definition: mmtypes.h:629
ULONG PtesInSubsection
Definition: mmtypes.h:574