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