ReactOS 0.4.15-dev-7788-g1ad9096
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//
84// Virtual Memory Flags
85//
86#define MEM_WRITE_WATCH 0x200000
87#define MEM_PHYSICAL 0x400000
88#define MEM_ROTATE 0x800000
89#define MEM_IMAGE SEC_IMAGE
90#define MEM_DOS_LIM 0x40000000
91
92//
93// Section Flags for NtCreateSection
94//
95#define SEC_NO_CHANGE 0x400000
96#define SEC_FILE 0x800000
97#define SEC_IMAGE 0x1000000
98#define SEC_PROTECTED_IMAGE 0x2000000
99#define SEC_RESERVE 0x4000000
100#define SEC_COMMIT 0x8000000
101#define SEC_NOCACHE 0x10000000
102#define SEC_WRITECOMBINE 0x40000000
103#define SEC_LARGE_PAGES 0x80000000
104
105#else // NTOS_MODE_USER
106
107#define SEC_BASED 0x200000
108
109//
110// Section Inherit Flags for NtMapViewOfSection
111//
112typedef enum _SECTION_INHERIT
113{
114 ViewShare = 1,
115 ViewUnmap = 2
117
118//
119// Pool Types
120//
121typedef enum _POOL_TYPE
122{
124 PagedPool,
131
136
144} POOL_TYPE;
145
146#endif // NTOS_MODE_USER
147
148//
149// Memory Manager Page Lists
150//
151typedef enum _MMLISTS
152{
162
163//
164// Per Processor Non Paged Lookaside List IDs
165//
167{
177
178//
179// Memory Information Classes for NtQueryVirtualMemory
180//
182{
189
190//
191// Section Information Clasess for NtQuerySection
192//
194{
198
199//
200// Kinds of VADs
201//
202typedef enum _MI_VAD_TYPE
203{
213
214#ifdef NTOS_MODE_USER
215//
216// Virtual Memory Counters
217//
218typedef struct _VM_COUNTERS
219{
232
233typedef struct _VM_COUNTERS_EX
234{
248#endif
249
250//
251// Sub-Information Types for PFN Identity
252//
254{
263
265{
270
272{
277
279{
284
285//
286// PFN Identity Data Structure
287//
288typedef struct _MMPFN_IDENTITY
289{
290 union
291 {
296 } u1;
298 union
299 {
300 struct
301 {
304 } e1;
309 } u2;
311
312//
313// List of Working Sets
314//
316{
320
321//
322// Memory Information Structures for NtQueryVirtualMemory
323//
324typedef struct
325{
328
329//
330// Section Information Structures for NtQuerySection
331//
333{
338
340{
346 union
347 {
348 struct
349 {
352 };
354 };
360#if (NTDDI_VERSION >= NTDDI_LONGHORN)
361 union
362 {
363 struct
364 {
370 };
372 };
373#else
374 BOOLEAN Spare1;
375#endif
378#if (NTDDI_VERSION >= NTDDI_LONGHORN)
380#else
381 ULONG Reserved[1];
382#endif
384
385#ifndef NTOS_MODE_USER
386
387//
388// Section Extension Information
389//
390typedef struct _MMEXTEND_INFO
391{
395
396//
397// Segment and Segment Flags
398//
399typedef struct _SEGMENT_FLAGS
400{
406
407typedef struct _SEGMENT
408{
419 union
420 {
423 } u1;
424 union
425 {
428 } u2;
432
434{
447
448//
449// Event Counter Structure
450//
451typedef struct _EVENT_COUNTER
452{
457
458//
459// Flags
460//
461typedef struct _MMSECTION_FLAGS
462{
496
498{
508
510{
515
516//
517// Control Area Structures (8-byte aligned)
518//
519typedef struct _CONTROL_AREA
520{
528 union
529 {
532 } u;
540C_ASSERT((sizeof(CONTROL_AREA) % 8) == 0);
541
543{
551 union
552 {
555 } u;
566C_ASSERT((sizeof(LARGE_CONTROL_AREA) % 8) == 0);
567
568//
569// Subsection and Mapped Subsection (8-byte aligned)
570//
571typedef struct _SUBSECTION
572{
574 union
575 {
578 } u;
586C_ASSERT((sizeof(SUBSECTION) % 8) == 0);
587
588typedef struct _MSUBSECTION
589{
591 union
592 {
595 } u;
604 union
605 {
608 } u2;
610C_ASSERT((sizeof(MSUBSECTION) % 8) == 0);
611
612//
613// Segment Object
614//
615typedef struct _SEGMENT_OBJECT
616{
628
629//
630// Generic Address Range Structure
631//
632typedef struct _ADDRESS_RANGE
633{
640
641//
642// Node in Memory Manager's AVL Table
643//
644typedef struct _MMADDRESS_NODE
645{
646 union
647 {
650 } u1;
656
657//
658// Memory Manager AVL Table for VADs and other descriptors
659//
660typedef struct _MM_AVL_TABLE
661{
665#ifdef _WIN64
667#else
669#endif
673
674//
675// Virtual Address List used in VADs
676//
677typedef struct _MMADDRESS_LIST
678{
682
683//
684// Flags used in the VAD
685//
686typedef struct _MMVAD_FLAGS
687{
688#ifdef _WIN64
690#else
692#endif
700
701//
702// Extended flags used in the VAD
703//
704typedef struct _MMVAD_FLAGS2
705{
716
717//
718// Virtual Address Descriptor (VAD) Structure
719//
720typedef struct _MMVAD
721{
722 union
723 {
725 struct _MMVAD *Parent;
726 } u1;
731 union
732 {
735 } u;
739 union
740 {
743 } u2;
745
746//
747// Long VAD used in section and private allocations
748//
749typedef struct _MMVAD_LONG
750{
751 union
752 {
755 } u1;
760 union
761 {
764 } u;
768 union
769 {
772 } u2;
773 union
774 {
777 } u3;
778 union
779 {
782 } u4;
784
785//
786// Short VAD used in virtual memory allocations
787//
788typedef struct _MMVAD_SHORT
789{
790 union
791 {
794 } u1;
799 union
800 {
803 } u;
805
806//
807// Actual Section Object
808//
809typedef struct _SECTION
810{
814 union
815 {
818 } u;
821
822//
823// Memory Manager Working Set Structures
824//
825typedef struct _MMWSLENTRY
826{
836
837typedef struct _MMWSLE_FREE_ENTRY
838{
840#ifdef _WIN64
843#define MMWSLE_PREVIOUS_FREE_MASK 0x7FFFFFFF
844#else
846#define MMWSLE_PREVIOUS_FREE_MASK 0x7FF
847#define MMWSLE_PREVIOUS_FREE_JUMP 0x800
849#endif
851
852typedef struct _MMWSLE
853{
854 union
855 {
860 } u1;
862
863typedef struct _MMWSLE_HASH
864{
868
869typedef struct _MMWSL
870{
885#ifndef _M_AMD64
888#else
889 VOID* HighestUserAddress;
890 ULONG MaximumUserPageTablePages;
891 ULONG MaximumUserPageDirectoryPages;
893 ULONG NumberOfCommittedPageDirectories;
894 ULONG* CommittedPageDirectories;
895 ULONG NumberOfCommittedPageDirectoryParents;
896 ULONGLONG CommittedPageDirectoryParents[1];
897#endif
899
900//
901// Flags for Memory Support Structure
902//
903typedef struct _MMSUPPORT_FLAGS
904{
918
919//
920// Per-Process Memory Manager Data
921//
922typedef struct _MMSUPPORT
923{
924#if (NTDDI_VERSION >= NTDDI_WS03)
926#endif
927#if (NTDDI_VERSION >= NTDDI_LONGHORN)
930#else
931 LARGE_INTEGER LastTrimTime;
932#endif
936#if (NTDDI_VERSION >= NTDDI_LONGHORN)
938#else
939 ULONG GrowthSinceLastEstimate;
940#endif
944#if (NTDDI_VERSION < NTDDI_WS03)
946#endif
948#if (NTDDI_VERSION >= NTDDI_LONGHORN)
952#else
953 ULONG NextEstimationSlot;
954 ULONG NextAgingSlot;
955 ULONG EstimatedAvailable;
956#endif
958#if (NTDDI_VERSION >= NTDDI_LONGHORN)
960#endif
962#if (NTDDI_VERSION >= NTDDI_LONGHORN)
964#endif
966
967//
968// Memory Information Types
969//
971{
980
981//
982// Driver Verifier Data
983//
985{
1014
1015//
1016// Internal Driver Verifier Table Data
1017//
1019{
1024
1025#ifdef __cplusplus
1026extern "C" {
1027#endif
1028
1029//
1030// Default heap size values. For user mode, these values are copied to a new
1031// process's PEB by the kernel in MmCreatePeb. In kernel mode, RtlCreateHeap
1032// reads these variables directly.
1033//
1034// These variables should be considered "const"; they are written only once,
1035// during MmInitSystem.
1036//
1041
1042//
1043// Section Object Type
1044//
1046
1047#ifdef __cplusplus
1048}; // extern "C"
1049#endif
1050
1051#endif // !NTOS_MODE_USER
1052
1053#ifdef __cplusplus
1054} // extern "C"
1055#endif
1056
1057#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:182
@ MemoryWorkingSetExList
Definition: mmtypes.h:187
@ MemoryBasicInformation
Definition: mmtypes.h:183
@ MemorySectionName
Definition: mmtypes.h:185
@ MemoryWorkingSetList
Definition: mmtypes.h:184
@ MemoryBasicVlmInformation
Definition: mmtypes.h:186
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:203
@ VadAwe
Definition: mmtypes.h:207
@ VadLargePageSection
Definition: mmtypes.h:211
@ VadWriteWatch
Definition: mmtypes.h:208
@ VadLargePages
Definition: mmtypes.h:209
@ VadRotatePhysical
Definition: mmtypes.h:210
@ VadDevicePhysicalMemory
Definition: mmtypes.h:205
@ VadImageMap
Definition: mmtypes.h:206
@ VadNone
Definition: mmtypes.h:204
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:194
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:194
@ SectionBasicInformation
Definition: mmtypes.h:195
@ SectionImageInformation
Definition: mmtypes.h:196
struct _MMADDRESS_NODE MMADDRESS_NODE
struct _UNIQUE_PROCESS_INFORMATION * PUNIQUE_PROCESS_INFORMATION
struct _MMADDRESS_LIST MMADDRESS_LIST
_PP_NPAGED_LOOKASIDE_NUMBER
Definition: mmtypes.h:167
@ LookasideLargeIrpList
Definition: mmtypes.h:169
@ LookasideTwilightList
Definition: mmtypes.h:173
@ LookasideCreateInfoList
Definition: mmtypes.h:171
@ LookasideCompletionList
Definition: mmtypes.h:174
@ LookasideMaximumList
Definition: mmtypes.h:175
@ LookasideMdlList
Definition: mmtypes.h:170
@ LookasideNameBufferList
Definition: mmtypes.h:172
@ LookasideSmallIrpList
Definition: mmtypes.h:168
_MMLISTS
Definition: mmtypes.h:152
@ BadPageList
Definition: mmtypes.h:158
@ ZeroedPageList
Definition: mmtypes.h:153
@ FreePageList
Definition: mmtypes.h:154
@ ActiveAndValid
Definition: mmtypes.h:159
@ ModifiedPageList
Definition: mmtypes.h:156
@ ModifiedNoWritePageList
Definition: mmtypes.h:157
@ TransitionPage
Definition: mmtypes.h:160
@ StandbyPageList
Definition: mmtypes.h:155
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:326
ULONG Type
Definition: mmtypes.h:638
ULONG LengthHigh
Definition: mmtypes.h:637
ULONG BaseAddrHigh
Definition: mmtypes.h:635
ULONG LengthLow
Definition: mmtypes.h:636
ULONG BaseAddrLow
Definition: mmtypes.h:634
PSEGMENT Segment
Definition: mmtypes.h:521
ULONG NumberOfSectionReferences
Definition: mmtypes.h:523
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:534
ULONG NumberOfMappedViews
Definition: mmtypes.h:525
ULONG NumberOfUserReferences
Definition: mmtypes.h:527
ULONG LongFlags
Definition: mmtypes.h:530
ULONG QuadwordPad
Definition: mmtypes.h:538
ULONG WritableUserReferences
Definition: mmtypes.h:537
MMSECTION_FLAGS Flags
Definition: mmtypes.h:531
union _CONTROL_AREA::@2599 u
PFILE_OBJECT FilePointer
Definition: mmtypes.h:533
USHORT ModifiedWriteCount
Definition: mmtypes.h:535
USHORT FlushInProgressCount
Definition: mmtypes.h:536
ULONG NumberOfPfnReferences
Definition: mmtypes.h:524
LIST_ENTRY DereferenceList
Definition: mmtypes.h:522
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:526
struct _LDR_DATA_TABLE_ENTRY * DataTableEntry
Definition: mmtypes.h:1021
SLIST_ENTRY ListEntry
Definition: mmtypes.h:453
KEVENT Event
Definition: mmtypes.h:455
ULONG RefCount
Definition: mmtypes.h:454
MMSECTION_FLAGS Flags
Definition: mmtypes.h:554
ULONG NumberOfSystemCacheViews
Definition: mmtypes.h:549
USHORT ModifiedWriteCount
Definition: mmtypes.h:558
PFILE_OBJECT FilePointer
Definition: mmtypes.h:556
ULONG WritableUserReferences
Definition: mmtypes.h:560
ULONG NumberOfUserReferences
Definition: mmtypes.h:550
PEVENT_COUNTER WaitingForDeletion
Definition: mmtypes.h:557
USHORT FlushInProgressCount
Definition: mmtypes.h:559
LIST_ENTRY DereferenceList
Definition: mmtypes.h:545
union _LARGE_CONTROL_AREA::@2600 u
ULONG NumberOfSectionReferences
Definition: mmtypes.h:546
LIST_ENTRY UserGlobalList
Definition: mmtypes.h:563
PSEGMENT Segment
Definition: mmtypes.h:544
ULONG NumberOfMappedViews
Definition: mmtypes.h:548
ULONG NumberOfPfnReferences
Definition: mmtypes.h:547
Definition: btrfs_drv.h:1876
Definition: typedefs.h:120
MMPTE SegmentPteTemplate
Definition: mmtypes.h:440
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:442
SIZE_T NumberOfCommittedPages
Definition: mmtypes.h:441
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:443
ULONG TotalNumberOfPtes
Definition: mmtypes.h:436
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:435
struct _MSUBSECTION * LastSubsectionHint
Definition: mmtypes.h:445
UINT64 SizeOfSegment
Definition: mmtypes.h:439
ULONGLONG ListDescription
Definition: mmtypes.h:256
ULONGLONG UseDescription
Definition: mmtypes.h:255
ULONG_PTR EndVpn
Definition: mmtypes.h:680
ULONG_PTR StartVpn
Definition: mmtypes.h:679
ULONG_PTR StartingVpn
Definition: mmtypes.h:653
struct _MMADDRESS_NODE * RightChild
Definition: mmtypes.h:652
union _MMADDRESS_NODE::@2604 u1
ULONG_PTR EndingVpn
Definition: mmtypes.h:654
struct _MMADDRESS_NODE * Parent
Definition: mmtypes.h:649
LONG_PTR Balance
Definition: mmtypes.h:648
struct _MMADDRESS_NODE * LeftChild
Definition: mmtypes.h:651
ULONGLONG CommittedSize
Definition: mmtypes.h:392
ULONG ReferenceCount
Definition: mmtypes.h:393
PVOID FileObject
Definition: mmtypes.h:305
union _MMPFN_IDENTITY::@2587 u2
ULONG Mismatch
Definition: mmtypes.h:303
UNIQUE_PROCESS_INFORMATION e4
Definition: mmtypes.h:295
FILEOFFSET_INFORMATION e2
Definition: mmtypes.h:293
MEMORY_FRAME_INFORMATION e1
Definition: mmtypes.h:292
union _MMPFN_IDENTITY::@2586 u1
PAGEDIR_INFORMATION e3
Definition: mmtypes.h:294
PVOID VirtualAddress
Definition: mmtypes.h:308
PVOID UniqueFileObjectKey
Definition: mmtypes.h:306
PVOID ProtoPteAddress
Definition: mmtypes.h:307
SIZE_T PageFrameIndex
Definition: mmtypes.h:297
ULONG PhysicalMemory
Definition: mmtypes.h:473
ULONG GlobalMemory
Definition: mmtypes.h:480
ULONG BeingDeleted
Definition: mmtypes.h:463
ULONG FloppyMedia
Definition: mmtypes.h:477
ULONG NoChange
Definition: mmtypes.h:486
ULONG DebugSymbolsLoaded
Definition: mmtypes.h:483
ULONG NoModifiedWriting
Definition: mmtypes.h:466
ULONG UserReference
Definition: mmtypes.h:479
ULONG CollidedFlush
Definition: mmtypes.h:485
ULONG CopyOnWrite
Definition: mmtypes.h:474
ULONG BeingPurged
Definition: mmtypes.h:465
ULONG FilePointerNull
Definition: mmtypes.h:482
ULONG WriteCombined
Definition: mmtypes.h:493
ULONG Networked
Definition: mmtypes.h:471
ULONG DeleteOnClose
Definition: mmtypes.h:481
ULONG FailAllIo
Definition: mmtypes.h:467
ULONG BeingCreated
Definition: mmtypes.h:464
ULONG GlobalOnlyPerSession
Definition: mmtypes.h:491
ULONG Accessed
Definition: mmtypes.h:490
ULONG WasPurged
Definition: mmtypes.h:478
ULONG ImageMappedInSystemSpace
Definition: mmtypes.h:488
ULONG UserWritable
Definition: mmtypes.h:489
ULONG SetMappedFileIoComplete
Definition: mmtypes.h:484
ULONG SubsectionConverted
Definition: mmtypes.h:512
ULONG SubsectionAccessed
Definition: mmtypes.h:511
ULONG StartingSector4132
Definition: mmtypes.h:505
ULONG SubsectionStatic
Definition: mmtypes.h:501
ULONG SectorEndOffset
Definition: mmtypes.h:506
ULONG GrowWsleHash
Definition: mmtypes.h:914
ULONG Available
Definition: mmtypes.h:916
ULONG MaximumWorkingSetHard
Definition: mmtypes.h:909
ULONG MinimumWorkingSetHard
Definition: mmtypes.h:911
ULONG TrimHard
Definition: mmtypes.h:908
ULONG AcquiredUnsafe
Definition: mmtypes.h:915
ULONG SessionLeader
Definition: mmtypes.h:907
ULONG BeingTrimmed
Definition: mmtypes.h:906
ULONG SessionSpace
Definition: mmtypes.h:905
ULONG MemoryPriority
Definition: mmtypes.h:913
ULONG ForceTrim
Definition: mmtypes.h:910
ULONG Available0
Definition: mmtypes.h:912
ULONG Spare0
Definition: mmtypes.h:937
ULONG WorkingSetSize
Definition: mmtypes.h:957
PMMWSL VmWorkingSetList
Definition: mmtypes.h:943
PVOID AccessLog
Definition: mmtypes.h:963
EX_PUSH_LOCK WorkingSetMutex
Definition: mmtypes.h:961
ULONG Claim
Definition: mmtypes.h:947
ULONG PageFaultCount
Definition: mmtypes.h:934
ULONG Spare
Definition: mmtypes.h:949
ULONG PeakWorkingSetSize
Definition: mmtypes.h:935
MMSUPPORT_FLAGS Flags
Definition: mmtypes.h:933
USHORT NextPageColor
Definition: mmtypes.h:929
ULONG WorkingSetPrivateSize
Definition: mmtypes.h:950
ULONG WorkingSetSizeOverhead
Definition: mmtypes.h:951
PKEVENT ExitEvent
Definition: mmtypes.h:959
ULONG MinimumWorkingSetSize
Definition: mmtypes.h:941
USHORT LastTrimpStamp
Definition: mmtypes.h:928
ULONG MaximumWorkingSetSize
Definition: mmtypes.h:942
LIST_ENTRY WorkingSetExpansionLinks
Definition: mmtypes.h:925
ULONG ReadOnly
Definition: mmtypes.h:710
ULONG FileOffset
Definition: mmtypes.h:706
ULONG CopyOnWrite
Definition: mmtypes.h:714
ULONG MultipleSecured
Definition: mmtypes.h:709
ULONG ExtendableFile
Definition: mmtypes.h:712
ULONG OneSecured
Definition: mmtypes.h:708
ULONG Inherit
Definition: mmtypes.h:713
ULONG LongVad
Definition: mmtypes.h:711
ULONG SecNoChange
Definition: mmtypes.h:707
ULONG_PTR NoChange
Definition: mmtypes.h:693
ULONG_PTR MemCommit
Definition: mmtypes.h:695
ULONG_PTR Protection
Definition: mmtypes.h:696
ULONG_PTR CommitCharge
Definition: mmtypes.h:691
ULONG_PTR Spare
Definition: mmtypes.h:697
ULONG_PTR VadType
Definition: mmtypes.h:694
ULONG_PTR PrivateMemory
Definition: mmtypes.h:698
PMMPTE LastContiguousPte
Definition: mmtypes.h:767
MMADDRESS_LIST Secured
Definition: mmtypes.h:776
PMMPTE FirstPrototypePte
Definition: mmtypes.h:766
PVOID Banked
Definition: mmtypes.h:780
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:763
union _MMVAD_LONG::@2610 u2
PMMEXTEND_INFO ExtendedInfo
Definition: mmtypes.h:781
PMMVAD RightChild
Definition: mmtypes.h:757
ULONG_PTR LongFlags
Definition: mmtypes.h:762
union _MMVAD_LONG::@2608 u1
ULONG_PTR EndingVpn
Definition: mmtypes.h:759
LONG_PTR Balance
Definition: mmtypes.h:753
LIST_ENTRY List
Definition: mmtypes.h:775
PCONTROL_AREA ControlArea
Definition: mmtypes.h:765
PMMVAD Parent
Definition: mmtypes.h:754
union _MMVAD_LONG::@2611 u3
ULONG LongFlags2
Definition: mmtypes.h:770
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:771
union _MMVAD_LONG::@2609 u
union _MMVAD_LONG::@2612 u4
PMMVAD LeftChild
Definition: mmtypes.h:756
ULONG_PTR StartingVpn
Definition: mmtypes.h:758
PMMVAD RightChild
Definition: mmtypes.h:796
PMMVAD LeftChild
Definition: mmtypes.h:795
ULONG_PTR StartingVpn
Definition: mmtypes.h:797
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:802
union _MMVAD_SHORT::@2614 u
LONG_PTR Balance
Definition: mmtypes.h:792
PMMVAD Parent
Definition: mmtypes.h:793
ULONG_PTR LongFlags
Definition: mmtypes.h:801
union _MMVAD_SHORT::@2613 u1
ULONG_PTR EndingVpn
Definition: mmtypes.h:798
struct _MMVAD * RightChild
Definition: mmtypes.h:728
LONG_PTR Balance
Definition: mmtypes.h:724
struct _MMVAD * LeftChild
Definition: mmtypes.h:727
union _MMVAD::@2605 u1
ULONG_PTR EndingVpn
Definition: mmtypes.h:730
ULONG LongFlags2
Definition: mmtypes.h:741
PCONTROL_AREA ControlArea
Definition: mmtypes.h:736
union _MMVAD::@2607 u2
ULONG_PTR StartingVpn
Definition: mmtypes.h:729
PMMPTE LastContiguousPte
Definition: mmtypes.h:738
MMVAD_FLAGS2 VadFlags2
Definition: mmtypes.h:742
MMVAD_FLAGS VadFlags
Definition: mmtypes.h:734
struct _MMVAD * Parent
Definition: mmtypes.h:725
union _MMVAD::@2606 u
ULONG_PTR LongFlags
Definition: mmtypes.h:733
PMMPTE FirstPrototypePte
Definition: mmtypes.h:737
ULONG_PTR Valid
Definition: mmtypes.h:827
ULONG_PTR Direct
Definition: mmtypes.h:832
ULONG_PTR Protection
Definition: mmtypes.h:830
ULONG_PTR LockedInMemory
Definition: mmtypes.h:829
ULONG_PTR Hashed
Definition: mmtypes.h:831
ULONG_PTR VirtualPageNumber
Definition: mmtypes.h:834
ULONG_PTR LockedInWs
Definition: mmtypes.h:828
ULONG_PTR Age
Definition: mmtypes.h:833
Definition: mmtypes.h:838
ULONG PreviousFree
Definition: mmtypes.h:845
ULONG MustBeZero
Definition: mmtypes.h:839
LONG NextFree
Definition: mmtypes.h:848
ULONG Index
Definition: mmtypes.h:866
PVOID Key
Definition: mmtypes.h:865
union _MMWSLE::@2616 u1
PVOID VirtualAddress
Definition: mmtypes.h:856
MMWSLE_FREE_ENTRY Free
Definition: mmtypes.h:859
ULONG_PTR Long
Definition: mmtypes.h:857
MMWSLENTRY e1
Definition: mmtypes.h:858
USHORT UsedPageTableEntries[768]
Definition: mmtypes.h:886
PMMWSLE_HASH HashTable
Definition: mmtypes.h:878
ULONG LastEntry
Definition: mmtypes.h:873
ULONG NonDirectCount
Definition: mmtypes.h:877
ULONG LastInitializedWsle
Definition: mmtypes.h:876
ULONG VadBitMapHint
Definition: mmtypes.h:884
PMMWSLE Wsle
Definition: mmtypes.h:875
ULONG NumberOfCommittedPageTables
Definition: mmtypes.h:880
ULONG CommittedPageTables[24]
Definition: mmtypes.h:887
ULONG NextSlot
Definition: mmtypes.h:874
PVOID HashTableStart
Definition: mmtypes.h:881
ULONG HashTableSize
Definition: mmtypes.h:879
PVOID HighestPermittedHashAddress
Definition: mmtypes.h:882
ULONG FirstFree
Definition: mmtypes.h:871
ULONG NumberOfImageWaiters
Definition: mmtypes.h:883
ULONG FirstDynamic
Definition: mmtypes.h:872
ULONG_PTR Unused
Definition: mmtypes.h:664
ULONG_PTR DepthOfTree
Definition: mmtypes.h:663
PVOID NodeHint
Definition: mmtypes.h:670
PVOID NodeFreeHint
Definition: mmtypes.h:671
ULONG_PTR NumberGenericTableElements
Definition: mmtypes.h:668
MMADDRESS_NODE BalancedRoot
Definition: mmtypes.h:662
ULONG CurrentPagedPoolAllocations
Definition: mmtypes.h:1002
ULONG AllocationsFailedDeliberately
Definition: mmtypes.h:997
ULONG BurstAllocationsFailedDeliberately
Definition: mmtypes.h:1010
ULONG PeakNonPagedPoolAllocations
Definition: mmtypes.h:1005
ULONG AllocationsSucceededSpecialPool
Definition: mmtypes.h:992
ULONG CurrentNonPagedPoolAllocations
Definition: mmtypes.h:1003
PCONTROL_AREA ControlArea
Definition: mmtypes.h:590
union _MSUBSECTION::@2602 u
MMSUBSECTION_FLAGS2 SubsectionFlags2
Definition: mmtypes.h:607
LIST_ENTRY DereferenceList
Definition: mmtypes.h:602
ULONG NumberOfFullSectors
Definition: mmtypes.h:597
ULONG UnusedPtes
Definition: mmtypes.h:599
ULONG LongFlags2
Definition: mmtypes.h:606
ULONG_PTR NumberOfMappedViews
Definition: mmtypes.h:603
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:601
ULONG LongFlags
Definition: mmtypes.h:593
union _MSUBSECTION::@2603 u2
ULONG PtesInSubsection
Definition: mmtypes.h:600
ULONG StartingSector
Definition: mmtypes.h:596
PMMPTE SubsectionBase
Definition: mmtypes.h:598
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:594
ULONGLONG PageDirectoryBase
Definition: mmtypes.h:274
ULONGLONG Reserved
Definition: mmtypes.h:275
ULONGLONG DontUse
Definition: mmtypes.h:273
LARGE_INTEGER Size
Definition: mmtypes.h:336
union _SECTION::@2615 u
MMSECTION_FLAGS Flags
Definition: mmtypes.h:817
ULONG LongFlags
Definition: mmtypes.h:816
PSEGMENT Segment
Definition: mmtypes.h:812
ULONG InitialPageProtection
Definition: mmtypes.h:819
MMADDRESS_NODE Address
Definition: mmtypes.h:811
LARGE_INTEGER SizeOfSection
Definition: mmtypes.h:813
ULONG LargePages
Definition: mmtypes.h:403
ULONG Spare
Definition: mmtypes.h:404
ULONG ExtraSharedWowSubsections
Definition: mmtypes.h:402
ULONG TotalNumberOfPtes4132
Definition: mmtypes.h:401
PCONTROL_AREA ControlArea
Definition: mmtypes.h:622
ULONG TotalNumberOfPtes
Definition: mmtypes.h:618
PVOID BaseAddress
Definition: mmtypes.h:617
PMMSUBSECTION_FLAGS MmSubSectionFlags
Definition: mmtypes.h:626
PLARGE_CONTROL_AREA LargeControlArea
Definition: mmtypes.h:624
PMMSECTION_FLAGS MmSectionFlags
Definition: mmtypes.h:625
ULONG NonExtendedPtes
Definition: mmtypes.h:620
ULONG ImageCommitment
Definition: mmtypes.h:621
LARGE_INTEGER SizeOfSegment
Definition: mmtypes.h:619
PSUBSECTION Subsection
Definition: mmtypes.h:623
union _SEGMENT::@2598 u2
SIZE_T ImageCommitment
Definition: mmtypes.h:421
PVOID FirstMappedVa
Definition: mmtypes.h:427
PMMEXTEND_INFO ExtendInfo
Definition: mmtypes.h:416
struct _CONTROL_AREA * ControlArea
Definition: mmtypes.h:409
PEPROCESS CreatingProcess
Definition: mmtypes.h:422
ULONG TotalNumberOfPtes
Definition: mmtypes.h:410
PVOID BasedAddress
Definition: mmtypes.h:418
MMPTE SegmentPteTemplate
Definition: mmtypes.h:414
PMMPTE PrototypePte
Definition: mmtypes.h:429
union _SEGMENT::@2597 u1
SEGMENT_FLAGS SegmentFlags
Definition: mmtypes.h:417
MMPTE ThePtes[1]
Definition: mmtypes.h:430
ULONGLONG SizeOfSegment
Definition: mmtypes.h:413
PSECTION_IMAGE_INFORMATION ImageInformation
Definition: mmtypes.h:426
ULONG Spare0
Definition: mmtypes.h:412
ULONG NonExtendedPtes
Definition: mmtypes.h:411
ULONG NumberOfCommittedPages
Definition: mmtypes.h:415
union _SUBSECTION::@2601 u
ULONG NumberOfFullSectors
Definition: mmtypes.h:580
ULONG UnusedPtes
Definition: mmtypes.h:582
ULONG PtesInSubsection
Definition: mmtypes.h:583
ULONG LongFlags
Definition: mmtypes.h:576
MMSUBSECTION_FLAGS SubsectionFlags
Definition: mmtypes.h:577
PCONTROL_AREA ControlArea
Definition: mmtypes.h:573
ULONG StartingSector
Definition: mmtypes.h:579
PMMPTE SubsectionBase
Definition: mmtypes.h:581
struct _SUBSECTION * NextSubsection
Definition: mmtypes.h:584
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:877
@ NonPagedPoolBaseCacheAlignedMustS
Definition: ketypes.h:890
@ NonPagedPoolSession
Definition: ketypes.h:892
@ NonPagedPoolCacheAlignedSession
Definition: ketypes.h:896
@ NonPagedPoolBaseMustSucceed
Definition: ketypes.h:888
@ PagedPoolCacheAligned
Definition: ketypes.h:883
@ PagedPoolSession
Definition: ketypes.h:893
@ DontUseThisTypeSession
Definition: ketypes.h:895
@ NonPagedPoolBase
Definition: ketypes.h:887
@ NonPagedPoolCacheAlignedMustS
Definition: ketypes.h:884
@ MaxPoolType
Definition: ketypes.h:885
@ NonPagedPoolBaseCacheAligned
Definition: ketypes.h:889
@ PagedPoolCacheAlignedSession
Definition: ketypes.h:897
@ NonPagedPoolCacheAlignedMustSSession
Definition: ketypes.h:898
@ DontUseThisType
Definition: ketypes.h:881
@ NonPagedPoolMustSucceed
Definition: ketypes.h:880
@ NonPagedPoolMustSucceedSession
Definition: ketypes.h:894
unsigned char UCHAR
Definition: xmlstorage.h:181