ReactOS 0.4.15-dev-6055-g36cdd34
mmtypes.h
Go to the documentation of this file.
1/*++ NDK Version: 0098
2
3Copyright (c) Alex Ionescu. All rights reserved.
4
5Header Name:
6
7 mmtypes.h
8
9Abstract:
10
11 Type definitions for the Memory Manager
12
13Author:
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
30extern "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//
109typedef enum _SECTION_INHERIT
110{
111 ViewShare = 1,
112 ViewUnmap = 2
114
115//
116// Pool Types
117//
118typedef enum _POOL_TYPE
119{
121 PagedPool,
128
133
141} POOL_TYPE;
142#endif
143
144//
145// Memory Manager Page Lists
146//
147typedef enum _MMLISTS
148{
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//
198typedef enum _MI_VAD_TYPE
199{
209
210#ifdef NTOS_MODE_USER
211
212//
213// Virtual Memory Counters
214//
215typedef struct _VM_COUNTERS
216{
229
230typedef struct _VM_COUNTERS_EX
231{
245#endif
246
247//
248// Sub-Information Types for PFN Identity
249//
251{
260
262{
267
269{
274
276{
281
282//
283// PFN Identity Data Structure
284//
285typedef 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//
321typedef 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//
387typedef struct _MMEXTEND_INFO
388{
392
393//
394// Segment and Segment Flags
395//
396typedef struct _SEGMENT_FLAGS
397{
403
404typedef struct _SEGMENT
405{
416 union
417 {
420 } u1;
421 union
422 {
425 } u2;
429
431{
444
445//
446// Event Counter Structure
447//
448typedef struct _EVENT_COUNTER
449{
454
455//
456// Flags
457//
458typedef struct _MMSECTION_FLAGS
459{
493
495{
505
507{
512
513//
514// Control Area Structures (8-byte aligned)
515//
516typedef struct _CONTROL_AREA
517{
525 union
526 {
529 } u;
537C_ASSERT((sizeof(CONTROL_AREA) % 8) == 0);
538
540{
548 union
549 {
552 } u;
563C_ASSERT((sizeof(LARGE_CONTROL_AREA) % 8) == 0);
564
565//
566// Subsection and Mapped Subsection (8-byte aligned)
567//
568typedef struct _SUBSECTION
569{
571 union
572 {
575 } u;
583C_ASSERT((sizeof(SUBSECTION) % 8) == 0);
584
585typedef struct _MSUBSECTION
586{
588 union
589 {
592 } u;
601 union
602 {
605 } u2;
607C_ASSERT((sizeof(MSUBSECTION) % 8) == 0);
608
609//
610// Segment Object
611//
612typedef struct _SEGMENT_OBJECT
613{
625
626//
627// Generic Address Range Structure
628//
629typedef struct _ADDRESS_RANGE
630{
637
638//
639// Node in Memory Manager's AVL Table
640//
641typedef struct _MMADDRESS_NODE
642{
643 union
644 {
647 } u1;
653
654//
655// Memory Manager AVL Table for VADs and other descriptors
656//
657typedef struct _MM_AVL_TABLE
658{
662#ifdef _WIN64
664#else
666#endif
670
671//
672// Virtual Adress List used in VADs
673//
674typedef struct _MMADDRESS_LIST
675{
679
680//
681// Flags used in the VAD
682//
683typedef struct _MMVAD_FLAGS
684{
685#ifdef _WIN64
687#else
689#endif
697
698//
699// Extended flags used in the VAD
700//
701typedef struct _MMVAD_FLAGS2
702{
713
714//
715// Virtual Address Descriptor (VAD) Structure
716//
717typedef struct _MMVAD
718{
719 union
720 {
722 struct _MMVAD *Parent;
723 } u1;
728 union
729 {
732 } u;
736 union
737 {
740 } u2;
742
743//
744// Long VAD used in section and private allocations
745//
746typedef struct _MMVAD_LONG
747{
748 union
749 {
752 } u1;
757 union
758 {
761 } u;
765 union
766 {
769 } u2;
770 union
771 {
774 } u3;
775 union
776 {
779 } u4;
781
782//
783// Short VAD used in virtual memory allocations
784//
785typedef struct _MMVAD_SHORT
786{
787 union
788 {
791 } u1;
796 union
797 {
800 } u;
802
803//
804// Actual Section Object
805//
806typedef struct _SECTION
807{
811 union
812 {
815 } u;
818
819//
820// Memory Manager Working Set Structures
821//
822typedef struct _MMWSLENTRY
823{
833
834typedef struct _MMWSLE_FREE_ENTRY
835{
837#ifdef _WIN64
840#define MMWSLE_PREVIOUS_FREE_MASK 0x7FFFFFFF
841#else
843#define MMWSLE_PREVIOUS_FREE_MASK 0x7FF
844#define MMWSLE_PREVIOUS_FREE_JUMP 0x800
846#endif
848
849typedef struct _MMWSLE
850{
851 union
852 {
857 } u1;
859
860typedef struct _MMWSLE_HASH
861{
865
866typedef struct _MMWSL
867{
882#ifndef _M_AMD64
885#else
886 VOID* HighestUserAddress;
887 ULONG MaximumUserPageTablePages;
888 ULONG MaximumUserPageDirectoryPages;
890 ULONG NumberOfCommittedPageDirectories;
891 ULONG* CommittedPageDirectories;
892 ULONG NumberOfCommittedPageDirectoryParents;
893 ULONGLONG CommittedPageDirectoryParents[1];
894#endif
896
897//
898// Flags for Memory Support Structure
899//
900typedef struct _MMSUPPORT_FLAGS
901{
915
916//
917// Per-Process Memory Manager Data
918//
919typedef struct _MMSUPPORT
920{
921#if (NTDDI_VERSION >= NTDDI_WS03)
923#endif
924#if (NTDDI_VERSION >= NTDDI_LONGHORN)
927#else
928 LARGE_INTEGER LastTrimTime;
929#endif
933#if (NTDDI_VERSION >= NTDDI_LONGHORN)
935#else
936 ULONG GrowthSinceLastEstimate;
937#endif
941#if (NTDDI_VERSION < NTDDI_WS03)
943#endif
945#if (NTDDI_VERSION >= NTDDI_LONGHORN)
949#else
950 ULONG NextEstimationSlot;
951 ULONG NextAgingSlot;
952 ULONG EstimatedAvailable;
953#endif
955#if (NTDDI_VERSION >= NTDDI_LONGHORN)
957#endif
959#if (NTDDI_VERSION >= NTDDI_LONGHORN)
961#endif
963
964//
965// Memory Information Types
966//
968{
977
978//
979// Driver Verifier Data
980//
982{
1011
1012//
1013// Internal Driver Verifier Table Data
1014//
1016{
1021
1022#ifdef __cplusplus
1023extern "C" {
1024#endif
1025
1026//
1027// Default heap size values. For user mode, these values are copied to a new
1028// process's PEB by the kernel in MmCreatePeb. In kernel mode, RtlCreateHeap
1029// reads these variables directly.
1030//
1031// These variables should be considered "const"; they are written only once,
1032// during MmInitSystem.
1033//
1038
1039//
1040// Section Object Type
1041//
1043
1044#ifdef __cplusplus
1045}; // extern "C"
1046#endif
1047
1048#endif // !NTOS_MODE_USER
1049
1050#ifdef __cplusplus
1051} // extern "C"
1052#endif
1053
1054#endif // _MMTYPES_H
unsigned char BOOLEAN
unsigned long long UINT64
#define NTSYSAPI
Definition: ntoskrnl.h:12
#define NonPagedPoolCacheAligned
Definition: env_spec_w32.h:310
#define NonPagedPool
Definition: env_spec_w32.h:307
#define PagedPool
Definition: env_spec_w32.h:308
struct _VM_COUNTERS_ VM_COUNTERS
struct _VM_COUNTERS_ * PVM_COUNTERS
struct _VM_COUNTERS_EX * PVM_COUNTERS_EX
struct _VM_COUNTERS_EX VM_COUNTERS_EX
#define C_ASSERT(e)
Definition: intsafe.h:73
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define MM_PAGE_FRAME_NUMBER_SIZE
Definition: mmtypes.h:38
struct _SEGMENT_OBJECT * PSEGMENT_OBJECT
SIZE_T MmHeapSegmentReserve
Definition: mminit.c:366
struct _MMWSLENTRY MMWSLENTRY
struct _MMWSL * PMMWSL
struct _MEMORY_BASIC_INFORMATION * PMEMORY_BASIC_INFORMATION
_MEMORY_INFORMATION_CLASS
Definition: mmtypes.h:178
@ MemoryWorkingSetExList
Definition: mmtypes.h:183
@ MemoryBasicInformation
Definition: mmtypes.h:179
@ MemorySectionName
Definition: mmtypes.h:181
@ MemoryWorkingSetList
Definition: mmtypes.h:180
@ MemoryBasicVlmInformation
Definition: mmtypes.h:182
struct _FILEOFFSET_INFORMATION FILEOFFSET_INFORMATION
struct _SEGMENT_OBJECT SEGMENT_OBJECT
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS DRIVER_SPECIFIED_VERIFIER_THUNKS
struct _SUBSECTION * PSUBSECTION
struct _MMADDRESS_NODE * PMMADDRESS_NODE
SIZE_T MmHeapDeCommitFreeBlockThreshold
Definition: mminit.c:369
struct _SECTION_IMAGE_INFORMATION SECTION_IMAGE_INFORMATION
struct _MM_DRIVER_VERIFIER_DATA * PMM_DRIVER_VERIFIER_DATA
struct _MMVAD_FLAGS2 * PMMVAD_FLAGS2
struct _SEGMENT * PSEGMENT
struct _MEMORY_WORKING_SET_LIST MEMORY_WORKING_SET_LIST
enum _SECTION_INFORMATION_CLASS SECTION_INFORMATION_CLASS
struct _SECTION_BASIC_INFORMATION SECTION_BASIC_INFORMATION
_MI_VAD_TYPE
Definition: mmtypes.h:199
@ VadAwe
Definition: mmtypes.h:203
@ VadLargePageSection
Definition: mmtypes.h:207
@ VadWriteWatch
Definition: mmtypes.h:204
@ VadLargePages
Definition: mmtypes.h:205
@ VadRotatePhysical
Definition: mmtypes.h:206
@ VadDevicePhysicalMemory
Definition: mmtypes.h:201
@ VadImageMap
Definition: mmtypes.h:202
@ VadNone
Definition: mmtypes.h:200
struct _LARGE_CONTROL_AREA LARGE_CONTROL_AREA
struct _MMPFN_IDENTITY * PMMPFN_IDENTITY
struct _MMWSLE_HASH * PMMWSLE_HASH
SIZE_T MmHeapDeCommitTotalFreeThreshold
Definition: mminit.c:368
struct _MMWSLENTRY * PMMWSLENTRY
struct _MMVAD_SHORT MMVAD_SHORT
struct _MMSECTION_FLAGS MMSECTION_FLAGS
enum _MEMORY_INFORMATION_CLASS MEMORY_INFORMATION_CLASS
struct _SECTION_BASIC_INFORMATION * PSECTION_BASIC_INFORMATION
struct _SUBSECTION SUBSECTION
struct _PAGEDIR_INFORMATION * PPAGEDIR_INFORMATION
struct _LARGE_CONTROL_AREA * PLARGE_CONTROL_AREA
struct _SEGMENT SEGMENT
struct _SECTION_IMAGE_INFORMATION * PSECTION_IMAGE_INFORMATION
struct _MAPPED_FILE_SEGMENT * PMAPPED_FILE_SEGMENT
struct _MAPPED_FILE_SEGMENT MAPPED_FILE_SEGMENT
struct MEMORY_SECTION_NAME * PMEMORY_SECTION_NAME
struct _MMVAD_FLAGS2 MMVAD_FLAGS2
struct _SEGMENT_FLAGS SEGMENT_FLAGS
struct _MMSUBSECTION_FLAGS MMSUBSECTION_FLAGS
struct _EVENT_COUNTER * PEVENT_COUNTER
struct _MMWSL MMWSL
struct _MEMORY_WORKING_SET_LIST * PMEMORY_WORKING_SET_LIST
enum _MMLISTS MMLISTS
struct _MEMORY_FRAME_INFORMATION MEMORY_FRAME_INFORMATION
enum _PP_NPAGED_LOOKASIDE_NUMBER PP_NPAGED_LOOKASIDE_NUMBER
struct _MM_DRIVER_VERIFIER_DATA MM_DRIVER_VERIFIER_DATA
struct _MMSUPPORT MMSUPPORT
struct _MSUBSECTION MSUBSECTION
struct _CONTROL_AREA * PCONTROL_AREA
struct _MMVAD MMVAD
struct _MMSUPPORT_FLAGS MMSUPPORT_FLAGS
struct _MMWSLE_FREE_ENTRY MMWSLE_FREE_ENTRY
struct _SEGMENT_FLAGS * PSEGMENT_FLAGS
struct _MMSUPPORT * PMMSUPPORT
struct _SECTION SECTION
struct _MMVAD_SHORT * PMMVAD_SHORT
struct _MEMORY_FRAME_INFORMATION * PMEMORY_FRAME_INFORMATION
struct _FILEOFFSET_INFORMATION * PFILEOFFSET_INFORMATION
struct _MMVAD_LONG MMVAD_LONG
POBJECT_TYPE NTSYSAPI MmSectionObjectType
Definition: section.c:195
struct _PAGEDIR_INFORMATION PAGEDIR_INFORMATION
struct _ADDRESS_RANGE ADDRESS_RANGE
struct _MMWSLE_HASH MMWSLE_HASH
enum _MI_VAD_TYPE * PMI_VAD_TYPE
struct _MM_AVL_TABLE MM_AVL_TABLE
struct _UNIQUE_PROCESS_INFORMATION UNIQUE_PROCESS_INFORMATION
struct _MSUBSECTION * PMSUBSECTION
struct _MMVAD_FLAGS MMVAD_FLAGS
struct _MMVAD_FLAGS * PMMVAD_FLAGS
struct _SECTION * PSECTION
struct _CONTROL_AREA CONTROL_AREA
struct _MMPFN_IDENTITY MMPFN_IDENTITY
struct _MMSUPPORT_FLAGS * PMMSUPPORT_FLAGS
struct _MMWSLE * PMMWSLE
struct _DRIVER_SPECIFIED_VERIFIER_THUNKS * PDRIVER_SPECIFIED_VERIFIER_THUNKS
struct _MMVAD_LONG * PMMVAD_LONG
struct _MM_AVL_TABLE * PMM_AVL_TABLE
struct _MMVAD * PMMVAD
struct _MMWSLE MMWSLE
struct _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION
struct _MMWSLE_FREE_ENTRY * PMMWSLE_FREE_ENTRY
SIZE_T MmHeapSegmentCommit
Definition: mminit.c:367
struct _MMEXTEND_INFO * PMMEXTEND_INFO
enum _MI_VAD_TYPE MI_VAD_TYPE
struct _MMSUBSECTION_FLAGS2 MMSUBSECTION_FLAGS2
struct _MMEXTEND_INFO MMEXTEND_INFO
_SECTION_INFORMATION_CLASS
Definition: mmtypes.h:190
@ SectionBasicInformation
Definition: mmtypes.h:191
@ SectionImageInformation
Definition: mmtypes.h:192
struct _MMADDRESS_NODE MMADDRESS_NODE
struct _UNIQUE_PROCESS_INFORMATION * PUNIQUE_PROCESS_INFORMATION
struct _MMADDRESS_LIST MMADDRESS_LIST
_PP_NPAGED_LOOKASIDE_NUMBER
Definition: mmtypes.h:163
@ LookasideLargeIrpList
Definition: mmtypes.h:165
@ LookasideTwilightList
Definition: mmtypes.h:169
@ LookasideCreateInfoList
Definition: mmtypes.h:167
@ LookasideCompletionList
Definition: mmtypes.h:170
@ LookasideMaximumList
Definition: mmtypes.h:171
@ LookasideMdlList
Definition: mmtypes.h:166
@ LookasideNameBufferList
Definition: mmtypes.h:168
@ LookasideSmallIrpList
Definition: mmtypes.h:164
_MMLISTS
Definition: mmtypes.h:148
@ BadPageList
Definition: mmtypes.h:154
@ ZeroedPageList
Definition: mmtypes.h:149
@ FreePageList
Definition: mmtypes.h:150
@ ActiveAndValid
Definition: mmtypes.h:155
@ ModifiedPageList
Definition: mmtypes.h:152
@ ModifiedNoWritePageList
Definition: mmtypes.h:153
@ TransitionPage
Definition: mmtypes.h:156
@ StandbyPageList
Definition: mmtypes.h:151
struct _MMSUBSECTION_FLAGS * PMMSUBSECTION_FLAGS
struct _EVENT_COUNTER EVENT_COUNTER
struct _ADDRESS_RANGE * PADDRESS_RANGE
struct _MMADDRESS_LIST * PMMADDRESS_LIST
struct _MMSECTION_FLAGS * PMMSECTION_FLAGS
enum _SECTION_INHERIT SECTION_INHERIT
_SECTION_INHERIT
Definition: nt_native.h:1277
@ ViewUnmap
Definition: nt_native.h:1279
@ ViewShare
Definition: nt_native.h:1278
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
UNICODE_STRING SectionFileName
Definition: mmtypes.h:323
ULONG Type
Definition: mmtypes.h:635
ULONG LengthHigh
Definition: mmtypes.h:634
ULONG BaseAddrHigh
Definition: mmtypes.h:632
ULONG LengthLow
Definition: mmtypes.h:633
ULONG BaseAddrLow
Definition: mmtypes.h:631
PSEGMENT Segment
Definition: mmtypes.h:518
ULONG NumberOfSectionReferences
Definition: mmtypes.h:520
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:531
ULONG NumberOfMappedViews
Definition: mmtypes.h:522
ULONG NumberOfUserReferences
Definition: mmtypes.h:524
ULONG LongFlags
Definition: mmtypes.h:527
ULONG QuadwordPad
Definition: mmtypes.h:535
ULONG WritableUserReferences
Definition: mmtypes.h:534
MMSECTION_FLAGS Flags
Definition: mmtypes.h:528
PFILE_OBJECT FilePointer
Definition: mmtypes.h:530
USHORT ModifiedWriteCount
Definition: mmtypes.h:532
USHORT FlushInProgressCount
Definition: mmtypes.h:533
union _CONTROL_AREA::@2581 u
ULONG NumberOfPfnReferences
Definition: mmtypes.h:521
LIST_ENTRY DereferenceList
Definition: mmtypes.h:519
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:523
struct _LDR_DATA_TABLE_ENTRY * DataTableEntry
Definition: mmtypes.h:1018
SLIST_ENTRY ListEntry
Definition: mmtypes.h:450
KEVENT Event
Definition: mmtypes.h:452
ULONG RefCount
Definition: mmtypes.h:451
MMSECTION_FLAGS Flags
Definition: mmtypes.h:551
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:546
USHORT ModifiedWriteCount
Definition: mmtypes.h:555
PFILE_OBJECT FilePointer
Definition: mmtypes.h:553
ULONG WritableUserReferences
Definition: mmtypes.h:557
ULONG NumberOfUserReferences
Definition: mmtypes.h:547
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:554
USHORT FlushInProgressCount
Definition: mmtypes.h:556
LIST_ENTRY DereferenceList
Definition: mmtypes.h:542
union _LARGE_CONTROL_AREA::@2582 u
ULONG NumberOfSectionReferences
Definition: mmtypes.h:543
LIST_ENTRY UserGlobalList
Definition: mmtypes.h:560
PSEGMENT Segment
Definition: mmtypes.h:541
ULONG NumberOfMappedViews
Definition: mmtypes.h:545
ULONG NumberOfPfnReferences
Definition: mmtypes.h:544
Definition: btrfs_drv.h:1876
Definition: typedefs.h:120
MMPTE SegmentPteTemplate
Definition: mmtypes.h:437
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:439
SIZE_T NumberOfCommittedPages
Definition: mmtypes.h:438
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:440
ULONG TotalNumberOfPtes
Definition: mmtypes.h:433
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:432
struct _MSUBSECTION * LastSubsectionHint
Definition: mmtypes.h:442
UINT64 SizeOfSegment
Definition: mmtypes.h:436
ULONGLONG ListDescription
Definition: mmtypes.h:253
ULONGLONG UseDescription
Definition: mmtypes.h:252
ULONG_PTR EndVpn
Definition: mmtypes.h:677
ULONG_PTR StartVpn
Definition: mmtypes.h:676
ULONG_PTR StartingVpn
Definition: mmtypes.h:650
struct _MMADDRESS_NODE * RightChild
Definition: mmtypes.h:649
union _MMADDRESS_NODE::@2586 u1
ULONG_PTR EndingVpn
Definition: mmtypes.h:651
struct _MMADDRESS_NODE * Parent
Definition: mmtypes.h:646
LONG_PTR Balance
Definition: mmtypes.h:645
struct _MMADDRESS_NODE * LeftChild
Definition: mmtypes.h:648
ULONGLONG CommittedSize
Definition: mmtypes.h:389
ULONG ReferenceCount
Definition: mmtypes.h:390
PVOID FileObject
Definition: mmtypes.h:302
ULONG Mismatch
Definition: mmtypes.h:300
union _MMPFN_IDENTITY::@2568 u1
UNIQUE_PROCESS_INFORMATION e4
Definition: mmtypes.h:292
FILEOFFSET_INFORMATION e2
Definition: mmtypes.h:290
MEMORY_FRAME_INFORMATION e1
Definition: mmtypes.h:289
PAGEDIR_INFORMATION e3
Definition: mmtypes.h:291
PVOID VirtualAddress
Definition: mmtypes.h:305
PVOID UniqueFileObjectKey
Definition: mmtypes.h:303
PVOID ProtoPteAddress
Definition: mmtypes.h:304
SIZE_T PageFrameIndex
Definition: mmtypes.h:294
union _MMPFN_IDENTITY::@2569 u2
ULONG PhysicalMemory
Definition: mmtypes.h:470
ULONG GlobalMemory
Definition: mmtypes.h:477
ULONG BeingDeleted
Definition: mmtypes.h:460
ULONG FloppyMedia
Definition: mmtypes.h:474
ULONG NoChange
Definition: mmtypes.h:483
ULONG DebugSymbolsLoaded
Definition: mmtypes.h:480
ULONG NoModifiedWriting
Definition: mmtypes.h:463
ULONG UserReference
Definition: mmtypes.h:476
ULONG CollidedFlush
Definition: mmtypes.h:482
ULONG CopyOnWrite
Definition: mmtypes.h:471
ULONG BeingPurged
Definition: mmtypes.h:462
ULONG FilePointerNull
Definition: mmtypes.h:479
ULONG WriteCombined
Definition: mmtypes.h:490
ULONG Networked
Definition: mmtypes.h:468
ULONG DeleteOnClose
Definition: mmtypes.h:478
ULONG FailAllIo
Definition: mmtypes.h:464
ULONG BeingCreated
Definition: mmtypes.h:461
ULONG GlobalOnlyPerSession
Definition: mmtypes.h:488
ULONG Accessed
Definition: mmtypes.h:487
ULONG WasPurged
Definition: mmtypes.h:475
ULONG ImageMappedInSystemSpace
Definition: mmtypes.h:485
ULONG UserWritable
Definition: mmtypes.h:486
ULONG SetMappedFileIoComplete
Definition: mmtypes.h:481
ULONG SubsectionConverted
Definition: mmtypes.h:509
ULONG SubsectionAccessed
Definition: mmtypes.h:508
ULONG StartingSector4132
Definition: mmtypes.h:502
ULONG SubsectionStatic
Definition: mmtypes.h:498
ULONG SectorEndOffset
Definition: mmtypes.h:503
ULONG GrowWsleHash
Definition: mmtypes.h:911
ULONG Available
Definition: mmtypes.h:913
ULONG MaximumWorkingSetHard
Definition: mmtypes.h:906
ULONG MinimumWorkingSetHard
Definition: mmtypes.h:908
ULONG TrimHard
Definition: mmtypes.h:905
ULONG AcquiredUnsafe
Definition: mmtypes.h:912
ULONG SessionLeader
Definition: mmtypes.h:904
ULONG BeingTrimmed
Definition: mmtypes.h:903
ULONG SessionSpace
Definition: mmtypes.h:902
ULONG MemoryPriority
Definition: mmtypes.h:910
ULONG ForceTrim
Definition: mmtypes.h:907
ULONG Available0
Definition: mmtypes.h:909
ULONG Spare0
Definition: mmtypes.h:934
ULONG WorkingSetSize
Definition: mmtypes.h:954
PMMWSL VmWorkingSetList
Definition: mmtypes.h:940
PVOID AccessLog
Definition: mmtypes.h:960
EX_PUSH_LOCK WorkingSetMutex
Definition: mmtypes.h:958
ULONG Claim
Definition: mmtypes.h:944
ULONG PageFaultCount
Definition: mmtypes.h:931
ULONG Spare
Definition: mmtypes.h:946
ULONG PeakWorkingSetSize
Definition: mmtypes.h:932
MMSUPPORT_FLAGS Flags
Definition: mmtypes.h:930
USHORT NextPageColor
Definition: mmtypes.h:926
ULONG WorkingSetPrivateSize
Definition: mmtypes.h:947
ULONG WorkingSetSizeOverhead
Definition: mmtypes.h:948
PKEVENT ExitEvent
Definition: mmtypes.h:956
ULONG MinimumWorkingSetSize
Definition: mmtypes.h:938
USHORT LastTrimpStamp
Definition: mmtypes.h:925
ULONG MaximumWorkingSetSize
Definition: mmtypes.h:939
LIST_ENTRY WorkingSetExpansionLinks
Definition: mmtypes.h:922
ULONG ReadOnly
Definition: mmtypes.h:707
ULONG FileOffset
Definition: mmtypes.h:703
ULONG CopyOnWrite
Definition: mmtypes.h:711
ULONG MultipleSecured
Definition: mmtypes.h:706
ULONG ExtendableFile
Definition: mmtypes.h:709
ULONG OneSecured
Definition: mmtypes.h:705
ULONG Inherit
Definition: mmtypes.h:710
ULONG LongVad
Definition: mmtypes.h:708
ULONG SecNoChange
Definition: mmtypes.h:704
ULONG_PTR NoChange
Definition: mmtypes.h:690
ULONG_PTR MemCommit
Definition: mmtypes.h:692
ULONG_PTR Protection
Definition: mmtypes.h:693
ULONG_PTR CommitCharge
Definition: mmtypes.h:688
ULONG_PTR Spare
Definition: mmtypes.h:694
ULONG_PTR VadType
Definition: mmtypes.h:691
ULONG_PTR PrivateMemory
Definition: mmtypes.h:695
PMMPTE LastContiguousPte
Definition: mmtypes.h:764
MMADDRESS_LIST Secured
Definition: mmtypes.h:773
PMMPTE FirstPrototypePte
Definition: mmtypes.h:763
PVOID Banked
Definition: mmtypes.h:777
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:760
union _MMVAD_LONG::@2593 u3
union _MMVAD_LONG::@2592 u2
PMMEXTEND_INFO ExtendedInfo
Definition: mmtypes.h:778
PMMVAD RightChild
Definition: mmtypes.h:754
ULONG_PTR LongFlags
Definition: mmtypes.h:759
union _MMVAD_LONG::@2590 u1
ULONG_PTR EndingVpn
Definition: mmtypes.h:756
LONG_PTR Balance
Definition: mmtypes.h:750
LIST_ENTRY List
Definition: mmtypes.h:772
PCONTROL_AREA ControlArea
Definition: mmtypes.h:762
PMMVAD Parent
Definition: mmtypes.h:751
ULONG LongFlags2
Definition: mmtypes.h:767
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:768
union _MMVAD_LONG::@2591 u
union _MMVAD_LONG::@2594 u4
PMMVAD LeftChild
Definition: mmtypes.h:753
ULONG_PTR StartingVpn
Definition: mmtypes.h:755
PMMVAD RightChild
Definition: mmtypes.h:793
PMMVAD LeftChild
Definition: mmtypes.h:792
ULONG_PTR StartingVpn
Definition: mmtypes.h:794
union _MMVAD_SHORT::@2596 u
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:799
LONG_PTR Balance
Definition: mmtypes.h:789
PMMVAD Parent
Definition: mmtypes.h:790
ULONG_PTR LongFlags
Definition: mmtypes.h:798
union _MMVAD_SHORT::@2595 u1
ULONG_PTR EndingVpn
Definition: mmtypes.h:795
struct _MMVAD * RightChild
Definition: mmtypes.h:725
LONG_PTR Balance
Definition: mmtypes.h:721
union _MMVAD::@2587 u1
struct _MMVAD * LeftChild
Definition: mmtypes.h:724
ULONG_PTR EndingVpn
Definition: mmtypes.h:727
ULONG LongFlags2
Definition: mmtypes.h:738
PCONTROL_AREA ControlArea
Definition: mmtypes.h:733
union _MMVAD::@2589 u2
ULONG_PTR StartingVpn
Definition: mmtypes.h:726
PMMPTE LastContiguousPte
Definition: mmtypes.h:735
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:739
union _MMVAD::@2588 u
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:731
struct _MMVAD * Parent
Definition: mmtypes.h:722
ULONG_PTR LongFlags
Definition: mmtypes.h:730
PMMPTE FirstPrototypePte
Definition: mmtypes.h:734
ULONG_PTR Valid
Definition: mmtypes.h:824
ULONG_PTR Direct
Definition: mmtypes.h:829
ULONG_PTR Protection
Definition: mmtypes.h:827
ULONG_PTR LockedInMemory
Definition: mmtypes.h:826
ULONG_PTR Hashed
Definition: mmtypes.h:828
ULONG_PTR VirtualPageNumber
Definition: mmtypes.h:831
ULONG_PTR LockedInWs
Definition: mmtypes.h:825
ULONG_PTR Age
Definition: mmtypes.h:830
Definition: mmtypes.h:835
ULONG PreviousFree
Definition: mmtypes.h:842
ULONG MustBeZero
Definition: mmtypes.h:836
LONG NextFree
Definition: mmtypes.h:845
ULONG Index
Definition: mmtypes.h:863
PVOID Key
Definition: mmtypes.h:862
PVOID VirtualAddress
Definition: mmtypes.h:853
union _MMWSLE::@2598 u1
MMWSLE_FREE_ENTRY Free
Definition: mmtypes.h:856
ULONG_PTR Long
Definition: mmtypes.h:854
MMWSLENTRY e1
Definition: mmtypes.h:855
USHORT UsedPageTableEntries[768]
Definition: mmtypes.h:883
PMMWSLE_HASH HashTable
Definition: mmtypes.h:875
ULONG LastEntry
Definition: mmtypes.h:870
ULONG NonDirectCount
Definition: mmtypes.h:874
ULONG LastInitializedWsle
Definition: mmtypes.h:873
ULONG VadBitMapHint
Definition: mmtypes.h:881
PMMWSLE Wsle
Definition: mmtypes.h:872
ULONG NumberOfCommittedPageTables
Definition: mmtypes.h:877
ULONG CommittedPageTables[24]
Definition: mmtypes.h:884
ULONG NextSlot
Definition: mmtypes.h:871
PVOID HashTableStart
Definition: mmtypes.h:878
ULONG HashTableSize
Definition: mmtypes.h:876
PVOID HighestPermittedHashAddress
Definition: mmtypes.h:879
ULONG FirstFree
Definition: mmtypes.h:868
ULONG NumberOfImageWaiters
Definition: mmtypes.h:880
ULONG FirstDynamic
Definition: mmtypes.h:869
ULONG_PTR Unused
Definition: mmtypes.h:661
ULONG_PTR DepthOfTree
Definition: mmtypes.h:660
PVOID NodeHint
Definition: mmtypes.h:667
PVOID NodeFreeHint
Definition: mmtypes.h:668
ULONG_PTR NumberGenericTableElements
Definition: mmtypes.h:665
MMADDRESS_NODE BalancedRoot
Definition: mmtypes.h:659
ULONG CurrentPagedPoolAllocations
Definition: mmtypes.h:999
ULONG AllocationsFailedDeliberately
Definition: mmtypes.h:994
ULONG BurstAllocationsFailedDeliberately
Definition: mmtypes.h:1007
ULONG PeakNonPagedPoolAllocations
Definition: mmtypes.h:1002
ULONG AllocationsSucceededSpecialPool
Definition: mmtypes.h:989
ULONG CurrentNonPagedPoolAllocations
Definition: mmtypes.h:1000
PCONTROL_AREA ControlArea
Definition: mmtypes.h:587
union _MSUBSECTION::@2584 u
MMSUBSECTION_FLAGS2 SubsectionFlags2
Definition: mmtypes.h:604
LIST_ENTRY DereferenceList
Definition: mmtypes.h:599
ULONG NumberOfFullSectors
Definition: mmtypes.h:594
ULONG UnusedPtes
Definition: mmtypes.h:596
ULONG LongFlags2
Definition: mmtypes.h:603
ULONG_PTR NumberOfMappedViews
Definition: mmtypes.h:600
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:598
ULONG LongFlags
Definition: mmtypes.h:590
ULONG PtesInSubsection
Definition: mmtypes.h:597
ULONG StartingSector
Definition: mmtypes.h:593
PMMPTE SubsectionBase
Definition: mmtypes.h:595
union _MSUBSECTION::@2585 u2
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:591
ULONGLONG PageDirectoryBase
Definition: mmtypes.h:271
ULONGLONG Reserved
Definition: mmtypes.h:272
ULONGLONG DontUse
Definition: mmtypes.h:270
LARGE_INTEGER Size
Definition: mmtypes.h:333
MMSECTION_FLAGS Flags
Definition: mmtypes.h:814
ULONG LongFlags
Definition: mmtypes.h:813
union _SECTION::@2597 u
PSEGMENT Segment
Definition: mmtypes.h:809
ULONG InitialPageProtection
Definition: mmtypes.h:816
MMADDRESS_NODE Address
Definition: mmtypes.h:808
LARGE_INTEGER SizeOfSection
Definition: mmtypes.h:810
ULONG LargePages
Definition: mmtypes.h:400
ULONG Spare
Definition: mmtypes.h:401
ULONG ExtraSharedWowSubsections
Definition: mmtypes.h:399
ULONG TotalNumberOfPtes4132
Definition: mmtypes.h:398
PCONTROL_AREA ControlArea
Definition: mmtypes.h:619
ULONG TotalNumberOfPtes
Definition: mmtypes.h:615
PVOID BaseAddress
Definition: mmtypes.h:614
PMMSUBSECTION_FLAGS MmSubSectionFlags
Definition: mmtypes.h:623
PLARGE_CONTROL_AREA LargeControlArea
Definition: mmtypes.h:621
PMMSECTION_FLAGS MmSectionFlags
Definition: mmtypes.h:622
ULONG NonExtendedPtes
Definition: mmtypes.h:617
ULONG ImageCommitment
Definition: mmtypes.h:618
LARGE_INTEGER SizeOfSegment
Definition: mmtypes.h:616
PSUBSECTION Subsection
Definition: mmtypes.h:620
SIZE_T ImageCommitment
Definition: mmtypes.h:418
PVOID FirstMappedVa
Definition: mmtypes.h:424
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:413
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:406
PEPROCESS CreatingProcess
Definition: mmtypes.h:419
union _SEGMENT::@2580 u2
union _SEGMENT::@2579 u1
ULONG TotalNumberOfPtes
Definition: mmtypes.h:407
PVOID BasedAddress
Definition: mmtypes.h:415
MMPTE SegmentPteTemplate
Definition: mmtypes.h:411
PMMPTE PrototypePte
Definition: mmtypes.h:426
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:414
MMPTE ThePtes[1]
Definition: mmtypes.h:427
ULONGLONG SizeOfSegment
Definition: mmtypes.h:410
PSECTION_IMAGE_INFORMATION ImageInformation
Definition: mmtypes.h:423
ULONG Spare0
Definition: mmtypes.h:409
ULONG NonExtendedPtes
Definition: mmtypes.h:408
ULONG NumberOfCommittedPages
Definition: mmtypes.h:412
ULONG NumberOfFullSectors
Definition: mmtypes.h:577
ULONG UnusedPtes
Definition: mmtypes.h:579
union _SUBSECTION::@2583 u
ULONG PtesInSubsection
Definition: mmtypes.h:580
ULONG LongFlags
Definition: mmtypes.h:573
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:574
PCONTROL_AREA ControlArea
Definition: mmtypes.h:570
ULONG StartingSector
Definition: mmtypes.h:576
PMMPTE SubsectionBase
Definition: mmtypes.h:578
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:581
SIZE_T PeakVirtualSize
Definition: pstypes.h:106
SIZE_T QuotaNonPagedPoolUsage
Definition: pstypes.h:114
SIZE_T WorkingSetSize
Definition: pstypes.h:110
SIZE_T VirtualSize
Definition: pstypes.h:107
SIZE_T PeakWorkingSetSize
Definition: pstypes.h:109
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:113
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:111
SIZE_T PagefileUsage
Definition: pstypes.h:115
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:112
SIZE_T PrivateUsage
Definition: pstypes.h:117
ULONG PageFaultCount
Definition: pstypes.h:108
SIZE_T PeakPagefileUsage
Definition: pstypes.h:116
SIZE_T PeakWorkingSetSize
Definition: pstypes.h:95
SIZE_T PeakPagefileUsage
Definition: pstypes.h:102
ULONG PageFaultCount
Definition: pstypes.h:94
SIZE_T QuotaPagedPoolUsage
Definition: pstypes.h:98
SIZE_T QuotaPeakPagedPoolUsage
Definition: pstypes.h:97
SIZE_T QuotaPeakNonPagedPoolUsage
Definition: pstypes.h:99
SIZE_T PeakVirtualSize
Definition: pstypes.h:92
SIZE_T VirtualSize
Definition: pstypes.h:93
SIZE_T QuotaNonPagedPoolUsage
Definition: pstypes.h:100
SIZE_T WorkingSetSize
Definition: pstypes.h:96
SIZE_T PagefileUsage
Definition: pstypes.h:101
#define SLIST_ENTRY(type)
Definition: queue.h:102
INT POOL_TYPE
Definition: typedefs.h:78
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
* PFILE_OBJECT
Definition: iotypes.h:1998
_POOL_TYPE
Definition: ketypes.h:865
@ NonPagedPoolBaseCacheAlignedMustS
Definition: ketypes.h:878
@ NonPagedPoolSession
Definition: ketypes.h:880
@ NonPagedPoolCacheAlignedSession
Definition: ketypes.h:884
@ NonPagedPoolBaseMustSucceed
Definition: ketypes.h:876
@ PagedPoolCacheAligned
Definition: ketypes.h:871
@ PagedPoolSession
Definition: ketypes.h:881
@ DontUseThisTypeSession
Definition: ketypes.h:883
@ NonPagedPoolBase
Definition: ketypes.h:875
@ NonPagedPoolCacheAlignedMustS
Definition: ketypes.h:872
@ MaxPoolType
Definition: ketypes.h:873
@ NonPagedPoolBaseCacheAligned
Definition: ketypes.h:877
@ PagedPoolCacheAlignedSession
Definition: ketypes.h:885
@ NonPagedPoolCacheAlignedMustSSession
Definition: ketypes.h:886
@ DontUseThisType
Definition: ketypes.h:869
@ NonPagedPoolMustSucceed
Definition: ketypes.h:868
@ NonPagedPoolMustSucceedSession
Definition: ketypes.h:882
unsigned char UCHAR
Definition: xmlstorage.h:181