ReactOS  r74227
mmtypes.h File Reference
#include <umtypes.h>
#include <arch/mmtypes.h>
#include <extypes.h>
Include dependency graph for mmtypes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _MEMORY_FRAME_INFORMATION
 
struct  _FILEOFFSET_INFORMATION
 
struct  _PAGEDIR_INFORMATION
 
struct  _UNIQUE_PROCESS_INFORMATION
 
struct  _MMPFN_IDENTITY
 
struct  _MEMORY_WORKING_SET_LIST
 
struct  MEMORY_SECTION_NAME
 
struct  _SECTION_BASIC_INFORMATION
 
struct  _SECTION_IMAGE_INFORMATION
 
struct  _MMEXTEND_INFO
 
struct  _SEGMENT_FLAGS
 
struct  _SEGMENT
 
struct  _MAPPED_FILE_SEGMENT
 
struct  _EVENT_COUNTER
 
struct  _MMSECTION_FLAGS
 
struct  _MMSUBSECTION_FLAGS
 
struct  _MMSUBSECTION_FLAGS2
 
struct  _CONTROL_AREA
 
struct  _LARGE_CONTROL_AREA
 
struct  _SUBSECTION
 
struct  _MSUBSECTION
 
struct  _SEGMENT_OBJECT
 
struct  _SECTION_OBJECT
 
struct  _ADDRESS_RANGE
 
struct  _MMADDRESS_NODE
 
struct  _MM_AVL_TABLE
 
struct  _MMADDRESS_LIST
 
struct  _MMVAD_FLAGS
 
struct  _MMVAD_FLAGS2
 
struct  _MMVAD
 
struct  _MMVAD_LONG
 
struct  _MMVAD_SHORT
 
struct  _SECTION
 
struct  _MMWSLENTRY
 
struct  _MMWSLE
 
struct  _MMWSLE_HASH
 
struct  _MMWSL
 
struct  _MMSUPPORT_FLAGS
 
struct  _MMSUPPORT
 
struct  _MEMORY_BASIC_INFORMATION
 
struct  _MM_DRIVER_VERIFIER_DATA
 
struct  _DRIVER_SPECIFIED_VERIFIER_THUNKS
 

Macros

#define PAGE_ROUND_DOWN(x)   (((ULONG_PTR)(x))&(~(PAGE_SIZE-1)))
 
#define PAGE_ROUND_UP(x)   ( (((ULONG_PTR)(x)) + PAGE_SIZE-1) & (~(PAGE_SIZE-1)) )
 
#define ROUND_TO_ALLOCATION_GRANULARITY(Size)
 
#define MMPFNUSE_PROCESSPRIVATE   0
 
#define MMPFNUSE_FILE   1
 
#define MMPFNUSE_PAGEFILEMAPPED   2
 
#define MMPFNUSE_PAGETABLE   3
 
#define MMPFNUSE_PAGEDPOOL   4
 
#define MMPFNUSE_NONPAGEDPOOL   5
 
#define MMPFNUSE_SYSTEMPTE   6
 
#define MMPFNUSE_SESSIONPRIVATE   7
 
#define MMPFNUSE_METAFILE   8
 
#define MMPFNUSE_AWEPAGE   9
 
#define MMPFNUSE_DRIVERLOCKPAGE   10
 
#define MMPFNUSE_KERNELSTACK   11
 
#define MAP_PROCESS   1
 
#define MAP_SYSTEM   2
 
#define MEM_EXECUTE_OPTION_DISABLE   0x1
 
#define MEM_EXECUTE_OPTION_ENABLE   0x2
 
#define MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION   0x4
 
#define MEM_EXECUTE_OPTION_PERMANENT   0x8
 
#define MEM_EXECUTE_OPTION_EXECUTE_DISPATCH_ENABLE   0x10
 
#define MEM_EXECUTE_OPTION_IMAGE_DISPATCH_ENABLE   0x20
 
#define MEM_EXECUTE_OPTION_VALID_FLAGS   0x3F
 
#define MEM_WRITE_WATCH   0x200000
 
#define MEM_PHYSICAL   0x400000
 
#define MEM_ROTATE   0x800000
 
#define MEM_IMAGE   SEC_IMAGE
 
#define MEM_DOS_LIM   0x40000000
 
#define SEC_NO_CHANGE   0x400000
 
#define SEC_FILE   0x800000
 
#define SEC_IMAGE   0x1000000
 
#define SEC_PROTECTED_IMAGE   0x2000000
 
#define SEC_RESERVE   0x4000000
 
#define SEC_COMMIT   0x8000000
 
#define SEC_NOCACHE   0x10000000
 
#define SEC_WRITECOMBINE   0x40000000
 
#define SEC_LARGE_PAGES   0x80000000
 

Typedefs

typedef enum _MMLISTS MMLISTS
 
typedef enum
_PP_NPAGED_LOOKASIDE_NUMBER 
PP_NPAGED_LOOKASIDE_NUMBER
 
typedef enum
_MEMORY_INFORMATION_CLASS 
MEMORY_INFORMATION_CLASS
 
typedef enum
_SECTION_INFORMATION_CLASS 
SECTION_INFORMATION_CLASS
 
typedef enum _MI_VAD_TYPE MI_VAD_TYPE
 
typedef enum _MI_VAD_TYPEPMI_VAD_TYPE
 
typedef struct
_MEMORY_FRAME_INFORMATION 
MEMORY_FRAME_INFORMATION
 
typedef struct
_MEMORY_FRAME_INFORMATION
PMEMORY_FRAME_INFORMATION
 
typedef struct
_FILEOFFSET_INFORMATION 
FILEOFFSET_INFORMATION
 
typedef struct
_FILEOFFSET_INFORMATION
PFILEOFFSET_INFORMATION
 
typedef struct _PAGEDIR_INFORMATION PAGEDIR_INFORMATION
 
typedef struct
_PAGEDIR_INFORMATION
PPAGEDIR_INFORMATION
 
typedef struct
_UNIQUE_PROCESS_INFORMATION 
UNIQUE_PROCESS_INFORMATION
 
typedef struct
_UNIQUE_PROCESS_INFORMATION
PUNIQUE_PROCESS_INFORMATION
 
typedef struct _MMPFN_IDENTITY MMPFN_IDENTITY
 
typedef struct _MMPFN_IDENTITYPMMPFN_IDENTITY
 
typedef struct
_MEMORY_WORKING_SET_LIST 
MEMORY_WORKING_SET_LIST
 
typedef struct
_MEMORY_WORKING_SET_LIST
PMEMORY_WORKING_SET_LIST
 
typedef struct
MEMORY_SECTION_NAME
PMEMORY_SECTION_NAME
 
typedef struct
_SECTION_BASIC_INFORMATION 
SECTION_BASIC_INFORMATION
 
typedef struct
_SECTION_BASIC_INFORMATION
PSECTION_BASIC_INFORMATION
 
typedef struct
_SECTION_IMAGE_INFORMATION 
SECTION_IMAGE_INFORMATION
 
typedef struct
_SECTION_IMAGE_INFORMATION
PSECTION_IMAGE_INFORMATION
 
typedef struct _MMEXTEND_INFO MMEXTEND_INFO
 
typedef struct _MMEXTEND_INFOPMMEXTEND_INFO
 
typedef struct _SEGMENT_FLAGS SEGMENT_FLAGS
 
typedef struct _SEGMENT_FLAGSPSEGMENT_FLAGS
 
typedef struct _SEGMENT SEGMENT
 
typedef struct _SEGMENTPSEGMENT
 
typedef struct _MAPPED_FILE_SEGMENT MAPPED_FILE_SEGMENT
 
typedef struct
_MAPPED_FILE_SEGMENT
PMAPPED_FILE_SEGMENT
 
typedef struct _EVENT_COUNTER EVENT_COUNTER
 
typedef struct _EVENT_COUNTERPEVENT_COUNTER
 
typedef struct _MMSECTION_FLAGS MMSECTION_FLAGS
 
typedef struct _MMSECTION_FLAGSPMMSECTION_FLAGS
 
typedef struct _MMSUBSECTION_FLAGS MMSUBSECTION_FLAGS
 
typedef struct
_MMSUBSECTION_FLAGS
PMMSUBSECTION_FLAGS
 
typedef struct _MMSUBSECTION_FLAGS2 MMSUBSECTION_FLAGS2
 
typedef struct _CONTROL_AREA CONTROL_AREA
 
typedef struct _CONTROL_AREAPCONTROL_AREA
 
typedef struct _LARGE_CONTROL_AREA LARGE_CONTROL_AREA
 
typedef struct
_LARGE_CONTROL_AREA
PLARGE_CONTROL_AREA
 
typedef struct _SUBSECTION SUBSECTION
 
typedef struct _SUBSECTIONPSUBSECTION
 
typedef struct _MSUBSECTION MSUBSECTION
 
typedef struct _MSUBSECTIONPMSUBSECTION
 
typedef struct _SEGMENT_OBJECT SEGMENT_OBJECT
 
typedef struct _SEGMENT_OBJECTPSEGMENT_OBJECT
 
typedef struct _SECTION_OBJECT SECTION_OBJECT
 
typedef struct _SECTION_OBJECTPSECTION_OBJECT
 
typedef struct _ADDRESS_RANGE ADDRESS_RANGE
 
typedef struct _ADDRESS_RANGEPADDRESS_RANGE
 
typedef struct _MMADDRESS_NODE MMADDRESS_NODE
 
typedef struct _MMADDRESS_NODEPMMADDRESS_NODE
 
typedef struct _MM_AVL_TABLE MM_AVL_TABLE
 
typedef struct _MM_AVL_TABLEPMM_AVL_TABLE
 
typedef struct _MMADDRESS_LIST MMADDRESS_LIST
 
typedef struct _MMADDRESS_LISTPMMADDRESS_LIST
 
typedef struct _MMVAD_FLAGS MMVAD_FLAGS
 
typedef struct _MMVAD_FLAGSPMMVAD_FLAGS
 
typedef struct _MMVAD_FLAGS2 MMVAD_FLAGS2
 
typedef struct _MMVAD_FLAGS2PMMVAD_FLAGS2
 
typedef struct _MMVAD MMVAD
 
typedef struct _MMVADPMMVAD
 
typedef struct _MMVAD_LONG MMVAD_LONG
 
typedef struct _MMVAD_LONGPMMVAD_LONG
 
typedef struct _MMVAD_SHORT MMVAD_SHORT
 
typedef struct _MMVAD_SHORTPMMVAD_SHORT
 
typedef struct _SECTION SECTION
 
typedef struct _SECTIONPSECTION
 
typedef struct _MMWSLENTRY MMWSLENTRY
 
typedef struct _MMWSLENTRYPMMWSLENTRY
 
typedef struct _MMWSLE MMWSLE
 
typedef struct _MMWSLEPMMWSLE
 
typedef struct _MMWSLE_HASH MMWSLE_HASH
 
typedef struct _MMWSLE_HASHPMMWSLE_HASH
 
typedef struct _MMWSL MMWSL
 
typedef struct _MMWSLPMMWSL
 
typedef struct _MMSUPPORT_FLAGS MMSUPPORT_FLAGS
 
typedef struct _MMSUPPORT_FLAGSPMMSUPPORT_FLAGS
 
typedef struct _MMSUPPORT MMSUPPORT
 
typedef struct _MMSUPPORTPMMSUPPORT
 
typedef struct
_MEMORY_BASIC_INFORMATION 
MEMORY_BASIC_INFORMATION
 
typedef struct
_MEMORY_BASIC_INFORMATION
PMEMORY_BASIC_INFORMATION
 
typedef struct
_MM_DRIVER_VERIFIER_DATA 
MM_DRIVER_VERIFIER_DATA
 
typedef struct
_MM_DRIVER_VERIFIER_DATA
PMM_DRIVER_VERIFIER_DATA
 
typedef struct
_DRIVER_SPECIFIED_VERIFIER_THUNKS 
DRIVER_SPECIFIED_VERIFIER_THUNKS
 
typedef struct
_DRIVER_SPECIFIED_VERIFIER_THUNKS
PDRIVER_SPECIFIED_VERIFIER_THUNKS
 

Enumerations

enum  _MMLISTS {
  ZeroedPageList = 0, FreePageList = 1, StandbyPageList = 2, ModifiedPageList = 3,
  ModifiedNoWritePageList = 4, BadPageList = 5, ActiveAndValid = 6, TransitionPage = 7
}
 
enum  _PP_NPAGED_LOOKASIDE_NUMBER {
  LookasideSmallIrpList = 0, LookasideLargeIrpList = 1, LookasideMdlList = 2, LookasideCreateInfoList = 3,
  LookasideNameBufferList = 4, LookasideTwilightList = 5, LookasideCompletionList = 6, LookasideMaximumList = 7
}
 
enum  _MEMORY_INFORMATION_CLASS {
  MemoryBasicInformation, MemoryWorkingSetList, MemorySectionName, MemoryBasicVlmInformation,
  MemoryWorkingSetExList, MemoryBasicInformation, MemoryWorkingSetList, MemorySectionName,
  MemoryBasicVlmInformation
}
 
enum  _SECTION_INFORMATION_CLASS { SectionBasicInformation, SectionImageInformation, SectionBasicInformation, SectionImageInformation }
 
enum  _MI_VAD_TYPE {
  VadNone, VadDevicePhysicalMemory, VadImageMap, VadAwe,
  VadWriteWatch, VadLargePages, VadRotatePhysical, VadLargePageSection
}
 

Variables

SIZE_T MmHeapSegmentReserve
 
SIZE_T MmHeapSegmentCommit
 
SIZE_T MmHeapDeCommitTotalFreeThreshold
 
SIZE_T MmHeapDeCommitFreeBlockThreshold
 
POBJECT_TYPE NTSYSAPI MmSectionObjectType
 

Macro Definition Documentation

#define MEM_DOS_LIM   0x40000000
#define MEM_EXECUTE_OPTION_DISABLE   0x1

Definition at line 73 of file mmtypes.h.

Referenced by MmGetExecuteOptions(), and MmSetExecuteOptions().

#define MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION   0x4

Definition at line 75 of file mmtypes.h.

Referenced by MmGetExecuteOptions(), and MmSetExecuteOptions().

#define MEM_EXECUTE_OPTION_ENABLE   0x2

Definition at line 74 of file mmtypes.h.

Referenced by MmGetExecuteOptions(), MmSetExecuteOptions(), START_TEST(), and test_mapprotection().

#define MEM_EXECUTE_OPTION_EXECUTE_DISPATCH_ENABLE   0x10

Definition at line 77 of file mmtypes.h.

Referenced by MmGetExecuteOptions(), and MmSetExecuteOptions().

#define MEM_EXECUTE_OPTION_IMAGE_DISPATCH_ENABLE   0x20

Definition at line 78 of file mmtypes.h.

Referenced by MmGetExecuteOptions(), and MmSetExecuteOptions().

#define MEM_EXECUTE_OPTION_PERMANENT   0x8

Definition at line 76 of file mmtypes.h.

Referenced by MmGetExecuteOptions(), and MmSetExecuteOptions().

#define MEM_EXECUTE_OPTION_VALID_FLAGS   0x3F

Definition at line 79 of file mmtypes.h.

Referenced by MmSetExecuteOptions().

#define MEM_PHYSICAL   0x400000

Definition at line 86 of file mmtypes.h.

Referenced by NtAllocateVirtualMemory(), and SimpleErrorChecks().

#define MEM_ROTATE   0x800000

Definition at line 87 of file mmtypes.h.

#define MEM_WRITE_WATCH   0x200000

Definition at line 85 of file mmtypes.h.

Referenced by NtAllocateVirtualMemory(), and test_write_watch().

#define MMPFNUSE_AWEPAGE   9

Definition at line 60 of file mmtypes.h.

#define MMPFNUSE_DRIVERLOCKPAGE   10

Definition at line 61 of file mmtypes.h.

#define MMPFNUSE_FILE   1

Definition at line 52 of file mmtypes.h.

#define MMPFNUSE_KERNELSTACK   11

Definition at line 62 of file mmtypes.h.

#define MMPFNUSE_METAFILE   8

Definition at line 59 of file mmtypes.h.

#define MMPFNUSE_NONPAGEDPOOL   5

Definition at line 56 of file mmtypes.h.

#define MMPFNUSE_PAGEDPOOL   4

Definition at line 55 of file mmtypes.h.

#define MMPFNUSE_PAGEFILEMAPPED   2

Definition at line 53 of file mmtypes.h.

#define MMPFNUSE_PAGETABLE   3

Definition at line 54 of file mmtypes.h.

#define MMPFNUSE_PROCESSPRIVATE   0

Definition at line 51 of file mmtypes.h.

#define MMPFNUSE_SESSIONPRIVATE   7

Definition at line 58 of file mmtypes.h.

#define MMPFNUSE_SYSTEMPTE   6

Definition at line 57 of file mmtypes.h.

#define PAGE_ROUND_UP (   x)    ( (((ULONG_PTR)(x)) + PAGE_SIZE-1) & (~(PAGE_SIZE-1)) )

Definition at line 38 of file mmtypes.h.

#define ROUND_TO_ALLOCATION_GRANULARITY (   Size)
Value:
UINTN Size
Definition: acefiex.h:550
#define ULONG_PTR
Definition: config.h:101
#define MM_ALLOCATION_GRANULARITY
Definition: mmtypes.h:36

Definition at line 44 of file mmtypes.h.

#define SEC_LARGE_PAGES   0x80000000
#define SEC_PROTECTED_IMAGE   0x2000000

Definition at line 97 of file mmtypes.h.

#define SEC_RESERVE   0x4000000

Definition at line 98 of file mmtypes.h.

#define SEC_WRITECOMBINE   0x40000000

Definition at line 101 of file mmtypes.h.

Typedef Documentation

typedef struct _MMVAD MMVAD
typedef struct _MMWSL MMWSL
typedef struct _MMVAD * PMMVAD
typedef struct _MMWSL * PMMWSL
typedef struct _MMWSLE * PMMWSLE

Enumeration Type Documentation

Enumerator
MemoryBasicInformation 
MemoryWorkingSetList 
MemorySectionName 
MemoryBasicVlmInformation 
MemoryWorkingSetExList 
MemoryBasicInformation 
MemoryWorkingSetList 
MemorySectionName 
MemoryBasicVlmInformation 

Definition at line 171 of file mmtypes.h.

Enumerator
VadNone 
VadDevicePhysicalMemory 
VadImageMap 
VadAwe 
VadWriteWatch 
VadLargePages 
VadRotatePhysical 
VadLargePageSection 

Definition at line 192 of file mmtypes.h.

193 {
194  VadNone,
196  VadImageMap,
197  VadAwe,
enum _MI_VAD_TYPE MI_VAD_TYPE
enum _MI_VAD_TYPE * PMI_VAD_TYPE
Enumerator
ZeroedPageList 
FreePageList 
StandbyPageList 
ModifiedPageList 
ModifiedNoWritePageList 
BadPageList 
ActiveAndValid 
TransitionPage 

Definition at line 141 of file mmtypes.h.

142 {
143  ZeroedPageList = 0,
144  FreePageList = 1,
145  StandbyPageList = 2,
146  ModifiedPageList = 3,
148  BadPageList = 5,
149  ActiveAndValid = 6,
150  TransitionPage = 7
151 } MMLISTS;
enum _MMLISTS MMLISTS
Enumerator
LookasideSmallIrpList 
LookasideLargeIrpList 
LookasideMdlList 
LookasideCreateInfoList 
LookasideNameBufferList 
LookasideTwilightList 
LookasideCompletionList 
LookasideMaximumList 

Definition at line 156 of file mmtypes.h.

Enumerator
SectionBasicInformation 
SectionImageInformation 
SectionBasicInformation 
SectionImageInformation 

Definition at line 183 of file mmtypes.h.

184 {
enum _SECTION_INFORMATION_CLASS SECTION_INFORMATION_CLASS

Variable Documentation

SIZE_T MmHeapDeCommitFreeBlockThreshold

Definition at line 368 of file mminit.c.

Referenced by MmArmInitSystem(), MmCreatePeb(), and RtlpSetHeapParameters().

SIZE_T MmHeapDeCommitTotalFreeThreshold

Definition at line 367 of file mminit.c.

Referenced by MmArmInitSystem(), MmCreatePeb(), and RtlpSetHeapParameters().

SIZE_T MmHeapSegmentCommit

Definition at line 366 of file mminit.c.

Referenced by MmArmInitSystem(), MmCreatePeb(), and RtlpSetHeapParameters().

SIZE_T MmHeapSegmentReserve

Definition at line 365 of file mminit.c.

Referenced by MmArmInitSystem(), MmCreatePeb(), and RtlpSetHeapParameters().