|
Classes |
struct | _MMCOLOR_TABLES |
struct | _MMPRIMARY_COLOR_TABLES |
struct | _MMPTE_SOFTWARE |
struct | _MMPTE_TRANSITION |
struct | _MMPTE_PROTOTYPE |
struct | _MMPTE_SUBSECTION |
struct | _MMPTE_LIST |
struct | _MMPTE_HARDWARE |
struct | _MMPTE_LARGEPAGE |
struct | _ALT_4KPTE |
struct | _MMPTE |
Defines |
#define | _MM64_ 1 |
#define | _MIALT4K_ 1 |
#define | MM_EMPTY_LIST ((ULONG)0xFFFFFFFF) |
#define | MM_EMPTY_PTE_LIST ((ULONG)0xFFFFFFFF) |
#define | MI_PTE_BASE_FOR_LOWEST_KERNEL_ADDRESS ((PMMPTE)PTE_KBASE) |
#define | MASK_43 0x7FFFFFFFFFFUI64 |
#define | MASK_44 0xFFFFFFFFFFFUI64 |
#define | MM_PAGES_IN_KSEG0 ((ULONG)((KSEG2_BASE - KSEG0_BASE) >> PAGE_SHIFT)) |
#define | MM_USER_ADDRESS_RANGE_LIMIT (0xFFFFFFFFFFFFFFFFUI64) |
#define | MM_MAXIMUM_ZERO_BITS 53 |
#define | MM_VIRTUAL_PAGE_FILLER (PAGE_SHIFT - 12) |
#define | MM_VIRTUAL_PAGE_SIZE (64-PAGE_SHIFT) |
#define | CODE_START KSEG0_BASE |
#define | CODE_END KSEG2_BASE |
#define | MM_SYSTEM_SPACE_START (KADDRESS_BASE + 0x400000000UI64) |
#define | MM_SYSTEM_SPACE_END (KADDRESS_BASE + 0x60000000000UI64) |
#define | PDE_TOP PDE_UTOP |
#define | ALT4KB_PERMISSION_TABLE_START (UADDRESS_BASE + 0x40000000000) |
#define | ALT4KB_PERMISSION_TABLE_END (UADDRESS_BASE + 0x40000400000) |
#define | HYPER_SPACE ((PVOID)(UADDRESS_BASE + 0x40000800000)) |
#define | HYPER_SPACE_END (UADDRESS_BASE + 0x401FFFFFFFF) |
#define | MM_SYSTEM_VIEW_START (KADDRESS_BASE + 0xA0000000) |
#define | MM_SYSTEM_VIEW_SIZE (48*1024*1024) |
#define | MM_SESSION_SPACE_DEFAULT (0x2000000000000000UI64) |
#define | MM_SYSTEM_VIEW_START_IF_HYDRA MM_SYSTEM_VIEW_START |
#define | MM_SYSTEM_VIEW_SIZE_IF_HYDRA MM_SYSTEM_VIEW_SIZE |
#define | MM_SYSTEM_CACHE_WORKING_SET (KADDRESS_BASE + 0x400000000UI64) |
#define | MM_SYSTEM_CACHE_START (KADDRESS_BASE + 0x600000000UI64) |
#define | MM_SYSTEM_CACHE_END (KADDRESS_BASE + 0x1005FFFFFFFFUI64) |
#define | MM_MAXIMUM_SYSTEM_CACHE_SIZE (((ULONG_PTR)MM_SYSTEM_CACHE_END - (ULONG_PTR)MM_SYSTEM_CACHE_START) >> PAGE_SHIFT) |
#define | MM_PAGED_POOL_START ((PVOID)(KADDRESS_BASE + 0x10600000000UI64)) |
#define | MM_LOWEST_NONPAGED_SYSTEM_START ((PVOID)(KADDRESS_BASE + 0x12600000000UI64)) |
#define | MmProtopte_Base (KADDRESS_BASE) |
#define | MM_NONPAGED_POOL_END ((PVOID)(KADDRESS_BASE + 0x16600000000UI64 - (16 * PAGE_SIZE))) |
#define | MM_CRASH_DUMP_VA ((PVOID)(KADDRESS_BASE + 0xFF800000)) |
#define | MM_DEBUG_VA ((PVOID)(KADDRESS_BASE + 0xFF900000)) |
#define | NON_PAGED_SYSTEM_END (KADDRESS_BASE + 0x16600000000UI64) |
#define | MM_PFN_DATABASE_START (KADDRESS_BASE + 0x40000000000UI64) |
#define | MM_PFN_DATABASE_END (KADDRESS_BASE + 0x60000000000UI64) |
#define | MM_MINIMUM_SYSTEM_PTES 7000 |
#define | MM_MAXIMUM_SYSTEM_PTES 50000 |
#define | MM_DEFAULT_SYSTEM_PTES 11000 |
#define | MM_MAX_INITIAL_NONPAGED_POOL ((SIZE_T)(128 * 1024 * 1024)) |
#define | MM_MAX_ADDITIONAL_NONPAGED_POOL (((SIZE_T)128 * 1024 * 1024 * 1024) - 16) |
#define | MM_MAX_PAGED_POOL ((SIZE_T)128 * 1024 * 1024 * 1024) |
#define | MM_MAX_DEFAULT_NONPAGED_POOL ((SIZE_T)8 * 1024 * 1024 * 1024) |
#define | MM_PROTO_PTE_ALIGNMENT ((ULONG)PAGE_SIZE) |
#define | PAGE_DIRECTORY1_MASK (((ULONG_PTR)1 << PDI1_SHIFT) - 1) |
#define | PAGE_DIRECTORY2_MASK (((ULONG_PTR)1 << PDI_SHIFT) -1) |
#define | MM_VA_MAPPED_BY_PDE ((ULONG_PTR)1 << PDI_SHIFT) |
#define | LOWEST_IO_ADDRESS 0xa0000 |
#define | PHYSICAL_ADDRESS_BITS 44 |
#define | MM_MAXIMUM_NUMBER_OF_COLORS (1) |
#define | MM_NUMBER_OF_COLORS (1) |
#define | MM_COLOR_MASK (0) |
#define | MM_COLOR_ALIGNMENT (0) |
#define | MM_COLOR_MASK_VIRTUAL (0) |
#define | MM_SECONDARY_COLORS_DEFAULT (64) |
#define | MM_SECONDARY_COLORS_MIN (2) |
#define | MM_SECONDARY_COLORS_MAX (1024) |
#define | MAX_PAGE_FILES 16 |
#define | FIRST_MAPPING_PTE ((PMMPTE)HYPER_SPACE) |
#define | NUMBER_OF_MAPPING_PTES 255 |
#define | LAST_MAPPING_PTE ((ULONG_PTR)((ULONG_PTR)FIRST_MAPPING_PTE + (NUMBER_OF_MAPPING_PTES * PAGE_SIZE))) |
#define | IMAGE_MAPPING_PTE ((PMMPTE)((ULONG_PTR)LAST_MAPPING_PTE + PAGE_SIZE)) |
#define | ZEROING_PAGE_PTE ((PMMPTE)((ULONG_PTR)IMAGE_MAPPING_PTE + PAGE_SIZE)) |
#define | WORKING_SET_LIST ((PVOID)((ULONG_PTR)ZEROING_PAGE_PTE + PAGE_SIZE)) |
#define | MM_MAXIMUM_WORKING_SET ((ULONG)((ULONG)2*1024*1024*1024 - 64*1024*1024) >> PAGE_SHIFT) |
#define | MM_WORKING_SET_END (UADDRESS_BASE + 0x3FFFFFFFFFFUI64) |
#define | MM_PTE_TB_MA_WB (0x0 << 2) |
#define | MM_PTE_TB_MA_UC (0x4 << 2) |
#define | MM_PTE_TB_MA_UCE (0x5 << 2) |
#define | MM_PTE_TB_MA_WC (0x6 << 2) |
#define | MM_PTE_TB_MA_NATPAGE (0x7 << 2) |
#define | MM_PTE_CACHE_ENABLED 0 |
#define | MM_PTE_CACHE_DISABLED 4 |
#define | MM_PTE_CACHE_DISPLAY 6 |
#define | MM_PTE_CACHE_RESERVED 1 |
#define | MM_PTE_OWNER_MASK 0x0180 |
#define | MM_PTE_VALID_MASK 1 |
#define | MM_PTE_CACHE_DISABLE_MASK MM_PTE_TB_MA_UC |
#define | MM_PTE_ACCESS_MASK 0x0020 |
#define | MM_PTE_DIRTY_MASK 0x0040 |
#define | MM_PTE_EXECUTE_MASK 0x0200 |
#define | MM_PTE_WRITE_MASK 0x0400 |
#define | MM_PTE_LARGE_PAGE_MASK 0 |
#define | MM_PTE_COPY_ON_WRITE_MASK ((ULONG)1 << (PAGE_SHIFT-1)) |
#define | MM_PTE_PROTOTYPE_MASK 0x0002 |
#define | MM_PTE_TRANSITION_MASK 0x0080 |
#define | MM_PTE_NOACCESS 0x0 |
#define | MM_PTE_READONLY 0x0 |
#define | MM_PTE_READWRITE MM_PTE_WRITE_MASK |
#define | MM_PTE_WRITECOPY MM_PTE_COPY_ON_WRITE_MASK |
#define | MM_PTE_EXECUTE MM_PTE_EXECUTE_MASK |
#define | MM_PTE_EXECUTE_READ MM_PTE_EXECUTE_MASK |
#define | MM_PTE_EXECUTE_READWRITE MM_PTE_EXECUTE_MASK | MM_PTE_WRITE_MASK |
#define | MM_PTE_EXECUTE_WRITECOPY MM_PTE_EXECUTE_MASK | MM_PTE_COPY_ON_WRITE_MASK |
#define | MM_PTE_GUARD 0x0 |
#define | MM_PTE_CACHE MM_PTE_TB_MA_WB |
#define | MM_PTE_NOCACHE MM_PTE_CACHE |
#define | MM_PTE_EXC_DEFER 0x10000000000000 |
#define | MM_PROTECT_FIELD_SHIFT 2 |
#define | MM_PTE_TB_VALID 0x0001 |
#define | MM_PTE_TB_ACCESSED 0x0020 |
#define | MM_PTE_TB_MODIFIED 0x0040 |
#define | MM_PTE_TB_WRITE 0x0400 |
#define | MM_PTE_TB_EXECUTE 0x0200 |
#define | MM_PTE_TB_EXC_DEFER 0x10000000000000 |
#define | MM_PTE_1MB_PAGE 20 |
#define | MM_PTE_2MB_PAGE 21 |
#define | MM_PTE_4MB_PAGE 22 |
#define | MM_PTE_16MB_PAGE 24 |
#define | MM_PTE_64MB_PAGE 26 |
#define | MM_PTE_256MB_PAGE 28 |
#define | MM_VHPT_PAGES 32 |
#define | MI_MAXIMUM_PTE_WORKING_SET_INDEX (1 << _HARDWARE_PTE_WORKING_SET_BITS) |
#define | MM_ZERO_PTE 0 |
#define | MM_ZERO_KERNEL_PTE 0 |
#define | MM_DEMAND_ZERO_WRITE_PTE ((ULONGLONG)MM_READWRITE << MM_PROTECT_FIELD_SHIFT) |
#define | MM_KERNEL_DEMAND_ZERO_PTE ((ULONGLONG)MM_READWRITE << MM_PROTECT_FIELD_SHIFT) |
#define | MM_KERNEL_NOACCESS_PTE ((ULONGLONG)MM_NOACCESS << MM_PROTECT_FIELD_SHIFT) |
#define | MM_STACK_ALIGNMENT 0x0 |
#define | MM_STACK_OFFSET 0x0 |
#define | PDE_PER_PAGE ((ULONG)(PAGE_SIZE/(1 << PTE_SHIFT))) |
#define | PTE_PER_PAGE ((ULONG)(PAGE_SIZE/(1 << PTE_SHIFT))) |
#define | PTE_PER_PAGE_BITS 11 |
#define | MM_USER_PAGE_TABLE_PAGES PTE_PER_PAGE |
#define | MI_MAKE_VALID_PTE_TRANSITION(OUTPTE, PROTECT) |
#define | MI_MAKE_TRANSITION_PTE(OUTPTE, PAGE, PROTECT, PPTE) |
#define | MI_SET_PTE_IN_WORKING_SET(PTE, WSINDEX) |
#define | MI_GET_WORKING_SET_FROM_PTE(PTE) (ULONG)(PTE)->u.Hard.SoftwareWsIndex |
#define | MI_SET_PTE_WRITE_COMBINE(PTE) ((PTE).u.Hard.Cache = MM_PTE_CACHE_DISABLED) |
#define | MI_SET_PTE_WRITE_COMBINE2(PTE) ((PTE).u.Hard.Cache = MM_PTE_CACHE_DISPLAY) |
#define | MI_SET_PTE_DIRTY(PTE) (PTE).u.Hard.Dirty = 1 |
#define | MI_SET_PTE_CLEAN(PTE) (PTE).u.Hard.Dirty = 0 |
#define | MI_IS_PTE_DIRTY(PTE) ((PTE).u.Hard.Dirty != 0) |
#define | MI_SET_GLOBAL_BIT_IF_SYSTEM(OUTPTE, PPTE) |
#define | MI_SET_GLOBAL_STATE(PTE, STATE) |
#define | MI_ENABLE_CACHING(PTE) ((PTE).u.Hard.Cache = MM_PTE_CACHE_ENABLED) |
#define | MI_DISABLE_CACHING(PTE) ((PTE).u.Hard.Cache = MM_PTE_CACHE_DISABLED) |
#define | MI_IS_CACHING_DISABLED(PPTE) ((PPTE)->u.Hard.Cache == MM_PTE_CACHE_DISABLED) |
#define | MI_SET_PFN_DELETED(PPFN) (((PPFN)->PteAddress = (PMMPTE)((INT_PTR)(LONG)0xFFFFFFFF))) |
#define | MI_IS_PFN_DELETED(PPFN) ((PPFN)->PteAddress == (PMMPTE)((INT_PTR)(LONG)0xFFFFFFFF)) |
#define | MI_CHECK_PAGE_ALIGNMENT(PAGE, PPTE) |
#define | MI_INITIALIZE_HYPERSPACE_MAP(INDEX) |
#define | MI_GET_PAGE_COLOR_FROM_PTE(PTEADDRESS) ((ULONG)((MmSystemPageColor++) & MmSecondaryColorMask)) |
#define | MI_GET_PAGE_COLOR_FROM_VA(ADDRESS) ((ULONG)((MmSystemPageColor++) & MmSecondaryColorMask)) |
#define | MI_GET_PAGE_COLOR_FROM_SESSION(_SessionSpace) ((ULONG)((_SessionSpace->Color++) & MmSecondaryColorMask)) |
#define | MI_PAGE_COLOR_PTE_PROCESS(PTE, COLOR) (ULONG)((ULONG_PTR)((*(COLOR))++) & MmSecondaryColorMask) |
#define | MI_PAGE_COLOR_VA_PROCESS(ADDRESS, COLOR) ((ULONG)((*(COLOR))++) & MmSecondaryColorMask) |
#define | MI_GET_NEXT_COLOR(COLOR) ((COLOR + 1) & MM_COLOR_MASK) |
#define | MI_GET_PREVIOUS_COLOR(COLOR) (0) |
#define | MI_GET_SECONDARY_COLOR(PAGE, PFN) ((ULONG)(PAGE & MmSecondaryColorMask)) |
#define | MI_GET_COLOR_FROM_SECONDARY(SECONDARY_COLOR) (0) |
#define | MI_GET_MODIFIED_PAGE_BY_COLOR(PAGE, COLOR) PAGE = MmModifiedPageListByColor[COLOR].Flink |
#define | MI_GET_MODIFIED_PAGE_ANY_COLOR(PAGE, COLOR) |
#define | MI_MAKE_VALID_PTE_WRITE_COPY(PPTE) |
#define | MI_DETERMINE_OWNER(PPTE) |
#define | MI_SET_ACCESSED_IN_PTE(PPTE, ACCESSED) |
#define | MI_GET_ACCESSED_IN_PTE(PPTE) 0 |
#define | MI_SET_OWNER_IN_PTE(PPTE, OWNER) |
#define | MI_GET_OWNER_IN_PTE(PPTE) KernelMode |
#define | CLEAR_FOR_PROTO_PTE_ADDRESS ((ULONG)0x701) |
#define | CLEAR_FOR_PAGE_FILE 0x000003E0 |
#define | MI_SET_PAGING_FILE_INFO(OUTPTE, PTE, FILEINFO, OFFSET) |
#define | MiPteToProto(lpte) ((PMMPTE) ((ULONG_PTR)((lpte)->u.Proto.ProtoAddress) + MmProtopte_Base)) |
#define | MiProtoAddressForPte(proto_va) |
#define | MISetProtoAddressForPte(PTE, proto_va) |
#define | MiProtoAddressForKernelPte(proto_va) MiProtoAddressForPte(proto_va) |
#define | MM_SUBSECTION_MAP (128*1024*1024) |
#define | MiGetSubsectionAddress(lpte) |
#define | MiGetSubsectionAddressForPte(VA) |
#define | MiSetSubsectionAddressForPte(PTE, VA) |
#define | MiGetPpeOffset(va) ((ULONG)(((ULONG_PTR)(va) >> PDI1_SHIFT) & PDI_MASK)) |
#define | MiGetPdeOffset(va) ((ULONG) (((ULONG_PTR)(va) >> PDI_SHIFT) & PDI_MASK)) |
#define | MiGetPpePdeOffset(va) ((ULONG) ((ULONG_PTR)(va) >> PDI_SHIFT)) |
#define | MiGetPteOffset(va) ((ULONG) (((ULONG_PTR)(va) >> PTI_SHIFT) & PDI_MASK)) |
#define | MiGetVirtualAddressMappedByPpe(PPE) MiGetVirtualAddressMappedByPte(MiGetVirtualAddressMappedByPde(PPE)) |
#define | MiGetVirtualAddressMappedByPde(Pde) MiGetVirtualAddressMappedByPte(MiGetVirtualAddressMappedByPte(Pde)) |
#define | MiGetVirtualAddressMappedByPte(PTE) ((PVOID)((ULONG_PTR)(PTE) << (PAGE_SHIFT - PTE_SHIFT))) |
#define | MiIsVirtualAddressOnPpeBoundary(VA) (((ULONG_PTR)(VA) & PAGE_DIRECTORY1_MASK) == 0) |
#define | MiIsVirtualAddressOnPdeBoundary(VA) (((ULONG_PTR)(VA) & PAGE_DIRECTORY2_MASK) == 0) |
#define | MiIsPteOnPpeBoundary(PTE) (((ULONG_PTR)(PTE) & (MM_VA_MAPPED_BY_PDE - 1)) == 0) |
#define | MiIsPteOnPdeBoundary(PTE) (((ULONG_PTR)(PTE) & (PAGE_SIZE - 1)) == 0) |
#define | GET_PAGING_FILE_NUMBER(PTE) ((ULONG) (PTE).u.Soft.PageFileLow) |
#define | GET_PAGING_FILE_OFFSET(PTE) ((ULONG) (PTE).u.Soft.PageFileHigh) |
#define | IS_PTE_NOT_DEMAND_ZERO(PTE) |
#define | MI_MAKING_VALID_PTE_INVALID(SYSTEM_WIDE) |
#define | MI_MAKING_MULTIPLE_PTES_INVALID(SYSTEM_WIDE) |
#define | MI_MAKE_PROTECT_WRITE_COPY(PTE) |
#define | MI_SET_PAGE_DIRTY(PPTE, VA, PFNHELD) |
#define | MI_NO_FAULT_FOUND(TEMP, PPTE, VA, PFNHELD) |
#define | MI_CAPTURE_DIRTY_BIT_TO_PFN(PPTE, PPFN) |
#define | MI_IS_PHYSICAL_ADDRESS(Va) |
#define | MI_CONVERT_PHYSICAL_TO_PFN(Va) |
#define | _MM_PAGING_FILE_LOW_SHIFT 28 |
#define | _MM_PAGING_FILE_HIGH_SHIFT 32 |
#define | MI_PTE_LOOKUP_NEEDED ((ULONG64)0xffffffff) |
#define | _MM_PROTO_ADDRESS_SHIFT 12 |
#define | _MM_PTE_SUBSECTION_ADDRESS_SHIFT 12 |
#define | _HARDWARE_PTE_WORKING_SET_BITS 11 |
#define | MI_GET_PAGE_FRAME_FROM_PTE(PTE) ((ULONG)((PTE)->u.Hard.PageFrameNumber)) |
#define | MI_GET_PAGE_FRAME_FROM_TRANSITION_PTE(PTE) ((ULONG)((PTE)->u.Trans.PageFrameNumber)) |
#define | MI_GET_PROTECTION_FROM_SOFT_PTE(PTE) ((ULONG)((PTE)->u.Soft.Protection)) |
#define | MI_GET_PROTECTION_FROM_TRANSITION_PTE(PTE) ((ULONG)((PTE)->u.Trans.Protection)) |
#define | MI_WRITE_VALID_PTE(_PointerPte, _PteContents) (*(_PointerPte) = (_PteContents)) |
#define | MI_WRITE_INVALID_PTE(_PointerPte, _PteContents) (*(_PointerPte) = (_PteContents)) |
#define | MI_WRITE_VALID_PTE_NEW_PROTECTION(_PointerPte, _PteContents) (*(_PointerPte) = (_PteContents)) |
#define | MiFillMemoryPte(Destination, Length, Pattern) RtlFillMemoryUlonglong ((Destination), (Length), (Pattern)) |
#define | KiWbInvalidateCache |
#define | MI_IS_PAGE_TABLE_ADDRESS(VA) |
#define | MI_IS_HYPER_SPACE_ADDRESS(VA) (((ULONG_PTR)VA >= (ULONG_PTR)HYPER_SPACE) && ((ULONG_PTR)VA <= HYPER_SPACE_END)) |
#define | MI_IS_PTE_ADDRESS(PTE) |
#define | MI_IS_PPE_ADDRESS(PTE) |
#define | MI_IS_KERNEL_PTE_ADDRESS(PTE) (((PMMPTE)PTE >= (PMMPTE)PTE_KBASE) && ((PMMPTE)PTE <= (PMMPTE)PTE_KTOP)) |
#define | MI_IS_USER_PTE_ADDRESS(PTE) ((PTE >= (PMMPTE)PTE_UBASE) && (PTE <= (PMMPTE)PTE_UTOP)) |
#define | MI_IS_PAGE_DIRECTORY_ADDRESS(PDE) |
#define | MI_IS_USER_PDE_ADDRESS(PDE) ((PDE >= (PMMPTE)PDE_UBASE) && (PDE <= (PMMPTE)PDE_UTOP)) |
#define | MI_IS_KERNEL_PDE_ADDRESS(PDE) ((PDE >= (PMMPTE)PDE_KBASE) && (PDE <= (PMMPTE)PDE_KTOP)) |
#define | MI_IS_PROCESS_SPACE_ADDRESS(VA) (((ULONG_PTR)VA >> 61) == UREGION_INDEX) |
#define | MI_IS_SYSTEM_ADDRESS(VA) (((ULONG_PTR)VA >> 61) == KREGION_INDEX) |
#define | KSEG0_ADDRESS(PAGE) (PVOID)(KSEG0_BASE | ((PAGE) << PAGE_SHIFT)) |
#define | MiGetPpeAddress(Va) |
#define | MiGetPdeAddress(Va) |
#define | MiGetPteAddress(Va) |
#define | MI_IS_PTE_PROTOTYPE(PointerPte) (!MI_IS_USER_PTE_ADDRESS (PointerPte)) |
#define | MI_IS_SYSTEM_CACHE_ADDRESS(VA) |
#define | PAGE_4K 4096 |
#define | PAGE_4K_SHIFT 12 |
#define | PAGE_4K_MASK (PAGE_4K - 1) |
#define | PAGE_4K_ALIGN(Va) ((PVOID)((ULONG_PTR)(Va) & ~(PAGE_4K - 1))) |
#define | ROUND_TO_4K_PAGES(Size) (((ULONG_PTR)(Size) + PAGE_4K - 1) & ~(PAGE_4K - 1)) |
#define | PAGE_NEXT_ALIGN(Va) ((PVOID)(PAGE_ALIGN((ULONG_PTR)Va + PAGE_SIZE - 1))) |
#define | BYTES_TO_4K_PAGES(Size) |
#define | SPLITS_PER_PAGE (PAGE_SIZE / PAGE_4K) |
#define | PAGE_SHIFT_DIFF (PAGE_SHIFT - PAGE_4K_SHIFT) |
#define | ALT_PTE_SHIFT 3 |
#define | ALT_PROTECTION_MASK (MM_PTE_EXECUTE_MASK|MM_PTE_WRITE_MASK) |
#define | MiGetAltPteAddress(VA) |
#define | MI_ALTFLG_FLUSH2G 0x0000000000000001 |
#define | ALT_ALLOCATE 1 |
#define | ALT_COMMIT 2 |
#define | ALT_CHANGE 4 |
#define | MM_ATE_COMMIT 0x0000000000000001 |
#define | MM_ATE_ACCESS 0x0000000000000020 |
#define | MM_ATE_READONLY 0x0000000000000200 |
#define | MM_ATE_EXECUTE 0x0400000000000200 |
#define | MM_ATE_EXECUTE_READ 0x0400000000000200 |
#define | MM_ATE_READWRITE 0x0000000000000600 |
#define | MM_ATE_WRITECOPY 0x0020000000000200 |
#define | MM_ATE_EXECUTE_READWRITE 0x0400000000000600 |
#define | MM_ATE_EXECUTE_WRITECOPY 0x0420000000000400 |
#define | MM_ATE_ZEROFILL 0x0800000000000000 |
#define | MM_ATE_NOACCESS 0x1000000000000000 |
#define | MM_ATE_COPY_ON_WRITE 0x2000000000000000 |
#define | MM_ATE_PRIVATE 0x8000000000000000 |
#define | MM_ATE_PROTO_MASK 0x0000000000000621 |
#define | _MAX_WOW64_ADDRESS (0x00000000080000000UI64) |
#define | MiMakeProtectionAteMask(NewProtect) MmProtectToAteMask[NewProtect] |
#define | _ALTPERM_BITMAP_MASK ((_MAX_WOW64_ADDRESS - 1) >> PTI_SHIFT) |
#define | MI_MAKE_VALID_PTE(OUTPTE, FRAME, PMASK, PPTE) |
#define | MI_MAKE_TRANSITION_PTE_VALID(OUTPTE, PPTE) |
#define | LOCK_ALTERNATE_TABLE(PWOW64) ExAcquireFastMutex( &(PWOW64)->AlternateTableLock) |
#define | UNLOCK_ALTERNATE_TABLE(PWOW64) ExReleaseFastMutex(&(PWOW64)->AlternateTableLock) |
#define | MI_IS_ALT_PAGE_TABLE_ADDRESS(PPTE) |
#define | MI_BARRIER_SYNCHRONIZE(TimeStamp) |
#define | MI_BARRIER_STAMP_ZEROED_PAGE(PointerTimeStamp) |
#define | MI_FLUSH_SINGLE_SESSION_TB(Virtual, Invalid, AllProcessors, PtePointer, PteValue, PreviousPte) |
#define | MI_FLUSH_ENTIRE_SESSION_TB(Invalid, AllProcessors) KeFlushEntireTb (Invalid, AllProcessors); |
#define | MI_IS_PCR_PAGE(Va) (((PVOID)PCR <= Va) && (Va < (PVOID)(PCR+PAGE_SIZE))) |
#define | MI_IS_ADDRESS_VALID_FOR_KD(VirtualAddress) |
Typedefs |
typedef _MMCOLOR_TABLES | MMCOLOR_TABLES |
typedef _MMCOLOR_TABLES * | PMMCOLOR_TABLES |
typedef _MMPRIMARY_COLOR_TABLES | MMPRIMARY_COLOR_TABLES |
typedef _MMPRIMARY_COLOR_TABLES * | PMMPRIMARY_COLOR_TABLES |
typedef _MMPTE_SOFTWARE | MMPTE_SOFTWARE |
typedef _MMPTE_TRANSITION | MMPTE_TRANSITION |
typedef _MMPTE_PROTOTYPE | MMPTE_PROTOTYPE |
typedef _MMPTE_SUBSECTION | MMPTE_SUBSECTION |
typedef _MMPTE_LIST | MMPTE_LIST |
typedef _MMPTE_HARDWARE | MMPTE_HARDWARE |
typedef _MMPTE_HARDWARE * | PMMPTE_HARDWARE |
typedef _MMPTE_LARGEPAGE | MMPTE_LARGEPAGE |
typedef _MMPTE_LARGEPAGE * | PMMPTE_LARGEPAGE |
typedef _ALT_4KPTE | ALT_4KPTE |
typedef _ALT_4KPTE * | PALT_4KPTE |
typedef _MMPTE | MMPTE |
typedef MMPTE * | PMMPTE |
Functions |
PVOID | KiGetPhysicalAddress (IN PVOID VirtualAddress) |
PVOID | MiCreatePebOrTeb (IN PEPROCESS TargetProcess, IN ULONG Size) |
| MmX86Fault (IN BOOLEAN StoreInstruction, IN PVOID VirtualAddress, IN KPROCESSOR_MODE PreviousMode, IN PVOID TrapInformation) |
VOID | MiProtectFor4kPage (IN PVOID Base, IN SIZE_T Size, IN ULONG NewProtect, IN ULONG Flags, IN PEPROCESS Process) |
VOID | MiProtectMapFileFor4kPage (IN PVOID Base, IN SIZE_T Size, IN ULONG NewProtect, IN PMMPTE PointerPte, IN PEPROCESS Process) |
VOID | MiProtectImageFileFor4kPage (IN PVOID Base, IN SIZE_T Size, IN PMMPTE PointerPte, IN PEPROCESS Process) |
VOID | MiReleaseFor4kPage (IN PVOID StartVirtual, IN PVOID EndVirtual, IN PEPROCESS Process) |
VOID | MiDecommitFor4kPage (IN PVOID StartVirtual, IN PVOID EndVirtual, IN PEPROCESS Process) |
VOID | MiDeleteFor4kPage (IN PVOID StartVirtual, IN PVOID EndVirtual, IN PEPROCESS Process) |
VOID | MiQueryRegionFor4kPage (IN PVOID BaseAddress, IN PVOID EndAddress, IN OUT PSIZE_T RegionSize, IN OUT PULONG RegionState, IN OUT PULONG RegionProtect, IN PEPROCESS Process) |
ULONG | MiQueryProtectionFor4kPage (IN PVOID BaseAddress, IN PEPROCESS Process) |
NTSTATUS | MiInitializeAlternateTable (PEPROCESS Process) |
VOID | MiDeleteAlternateTable (PEPROCESS Process) |
VOID | MiLockFor4kPage (PVOID CapturedBase, SIZE_T CapturedRegionSize, PEPROCESS Process) |
NTSTATUS | MiUnlockFor4kPage (PVOID CapturedBase, SIZE_T CapturedRegionSize, PEPROCESS Process) |
BOOLEAN | MiShouldBeUnlockedFor4kPage (PVOID VirtualAddress, PEPROCESS Process) |
VOID | MiMarkSplitPages (IN PVOID StartVirtual, IN PVOID EndVirtual, IN PULONG Bitmap, IN BOOLEAN SetBit) |
ULONG | MiMakeProtectForNativePage (IN PVOID VirtualAddress, IN ULONG NewProtect, IN PEPROCESS Process) |
VOID | MiSweepCacheMachineDependent (IN PVOID VirtualAddress, IN SIZE_T Size, IN MEMORY_CACHING_TYPE CacheType) |
Variables |
ULONG_PTR | MmKseg2Frame |
ULONGLONG | MmPageSizeInfo |
ULONG | MiMaximumSystemCacheSize |
ULONG | MmSecondaryColorMask |
ULONG_PTR | MmPteGlobal |
PMMCOLOR_TABLES | MmFreePagesByColor [2] |
ULONG | MmTotalPagesForPagingFile |
MMPTE | ValidPpePte |
PFN_NUMBER | MmSystemParentTablePage |
ULONG | MmProtectToPteMaskForIA32 [32] |
ULONG | MmProtectToPteMaskForSplit [32] |
ULONGLONG | MmProtectToAteMask [32] |