ReactOS  0.4.12-dev-43-g63b00d8
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 {
237  SIZE_T PrivateUsage;
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 {
309  ULONG WorkingSetList[1];
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;
422  MMPTE ThePtes[1];
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
667  ULONG_PTR NumberGenericTableElements:56;
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
690  ULONG_PTR CommitCharge:51;
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;
870  USHORT UsedPageTableEntries[768];
871  ULONG CommittedPageTables[24];
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)
919  LIST_ENTRY WorkingSetExpansionLinks;
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_PTR EndingVpn
Definition: mmtypes.h:760
ULONG NoModifiedWriting
Definition: mmtypes.h:458
struct _MMSUPPORT_FLAGS * PMMSUPPORT_FLAGS
ULONG MinimumWorkingSetHard
Definition: mmtypes.h:885
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:797
struct _VM_COUNTERS_EX * PVM_COUNTERS_EX
MMPTE SegmentPteTemplate
Definition: mmtypes.h:432
ULONG SubsectionConverted
Definition: mmtypes.h:504
GLdouble GLdouble u2
Definition: glext.h:8308
LONG_PTR Balance
Definition: mmtypes.h:725
ULONG NumberOfCommittedPages
Definition: mmtypes.h:407
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:526
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
LONG_PTR Balance
Definition: mmtypes.h:754
_POOL_TYPE
Definition: ketypes.h:865
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
#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:45
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:369
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
struct _MMWSLE MMWSLE
ULONG BeingPurged
Definition: mmtypes.h:457
ULONG InitialPageProtection
Definition: mmtypes.h:820
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
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
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
ULONG LongVad
Definition: mmtypes.h:712
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:583
GLenum GLclampf GLint GLenum GLuint GLenum GLenum GLsizei GLenum const GLvoid GLfloat GLfloat GLfloat GLfloat GLclampd GLint GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean GLboolean GLboolean GLboolean GLint GLenum GLsizei const GLvoid GLenum GLint GLenum GLint GLint GLsizei GLint GLenum GLint GLint GLint GLint GLsizei GLenum GLsizei const GLuint GLboolean GLenum GLenum GLint GLsizei GLenum GLsizei GLenum const GLvoid GLboolean const GLboolean GLenum const GLdouble * u
Definition: glfuncs.h:88
PMMVAD Parent
Definition: mmtypes.h:794
ULONG AcquiredUnsafe
Definition: mmtypes.h:889
SIZE_T MmHeapSegmentCommit
Definition: mminit.c:367
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
GLdouble u1
Definition: glext.h:8308
struct _EVENT_COUNTER * PEVENT_COUNTER
_MI_VAD_TYPE
Definition: mmtypes.h:192
PVOID FirstMappedVa
Definition: mmtypes.h:419
struct _SUBSECTION SUBSECTION
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
_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
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:63
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
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
struct _VM_COUNTERS_ * PVM_COUNTERS
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:574
struct _MMVAD * LeftChild
Definition: mmtypes.h:728
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 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
unsigned char BOOLEAN
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
struct _UNIQUE_PROCESS_INFORMATION UNIQUE_PROCESS_INFORMATION
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
struct _SECTION * PSECTION
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:368
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
ULONG FileOffset
Definition: mmtypes.h:707
_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
ULONG PageFaultCount
Definition: mmtypes.h:908
struct _MMSUPPORT * PMMSUPPORT
EX_PUSH_LOCK WorkingSetMutex
Definition: mmtypes.h:935
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
struct _EVENT_COUNTER EVENT_COUNTER
PVOID Key
Definition: mmtypes.h:850
PCONTROL_AREA ControlArea
Definition: mmtypes.h:610
struct _VM_COUNTERS_EX VM_COUNTERS_EX
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:76
struct _MMSUPPORT MMSUPPORT
ULONG LastInitializedWsle
Definition: mmtypes.h:861
uint64_t ULONGLONG
Definition: typedefs.h:65
ULONG TotalNumberOfPtes
Definition: mmtypes.h:606
PVOID NodeFreeHint
Definition: mmtypes.h:672
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
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
struct _ADDRESS_RANGE ADDRESS_RANGE
struct _MMSECTION_FLAGS * PMMSECTION_FLAGS
* PFILE_OBJECT
Definition: iotypes.h:1954
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
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
static BYTE u4[]
Definition: msg.c:588
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: btrfs_drv.h:1762
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:117
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
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:78
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
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:366
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
__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
#define SLIST_ENTRY(type)
Definition: queue.h:102
PMMPTE SubsectionBase
Definition: mmtypes.h:587
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
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
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
struct _PAGEDIR_INFORMATION * PPAGEDIR_INFORMATION
struct _SEGMENT_OBJECT SEGMENT_OBJECT
struct _MMPFN_IDENTITY * PMMPFN_IDENTITY
ULONG UserWritable
Definition: mmtypes.h:481
static BYTE u3[]
Definition: msg.c:580
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
ULONG_PTR Protection
Definition: mmtypes.h:831
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
ULONG UnusedPtes
Definition: mmtypes.h:572
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
ULONG VadBitMapHint
Definition: mmtypes.h:869
PVOID RightChild
Definition: mmtypes.h:626
ULONG PtesInSubsection
Definition: mmtypes.h:573