|
Classes |
struct | _MMCOLOR_TABLES |
struct | _MMPRIMARY_COLOR_TABLES |
struct | _MMPTE_TRANSITION |
struct | _MMPTE_SOFTWARE |
struct | _MMPTE_PROTOTYPE |
struct | _MMPTE_SUBSECTION |
struct | _MMPTE_LIST |
struct | _MMPTE |
Defines |
#define | MM_VIRTUAL_PAGE_SHIFT 20 |
#define | MM_SYSTEM_SPACE_START (0xD0000000) |
#define | MM_SYSTEM_SPACE_END (0xFFFFFFFF) |
#define | MM_HAL_RESERVED (0xFFC00000) |
#define | PDE_TOP 0xC03FFFFF |
#define | HYPER_SPACE ((PVOID)0xC0400000) |
#define | HYPER_SPACE_END 0xC07fffff |
#define | MM_SYSTEM_CACHE_AND_POOL_DISJOINT 1 |
#define | MM_SYSTEM_CACHE_WORKING_SET (0x90000000) |
#define | MM_SYSTEM_CACHE_START (0x90400000) |
#define | MM_SYSTEM_CACHE_END (0xAE000000) |
#define | MM_MAXIMUM_SYSTEM_CACHE_SIZE (((ULONG)MM_SYSTEM_CACHE_END - (ULONG)MM_SYSTEM_CACHE_START) >> PAGE_SHIFT) |
#define | MM_BOOT_CODE_PAGEABLE 1 |
#define | MM_BOOT_CODE_START (0x80000000) |
#define | MM_BOOT_CODE_END (0x90000000) |
#define | MM_SYSTEM_CACHE_AND_POOL_DISJOINT 1 |
#define | MM_SYSTEM_VIEW_START (0xD0000000) |
#define | MM_SYSTEM_VIEW_SIZE (48*1024*1024) |
#define | MM_PAGED_POOL_START ((PVOID)(0xD3000000)) |
#define | MM_LOWEST_NONPAGED_SYSTEM_START ((PVOID)(0xE0000000)) |
#define | MmProtopte_Base ((ULONG)0xD3000000) |
#define | MM_NONPAGED_POOL_END ((PVOID)(0xEFC00000)) |
#define | NON_PAGED_SYSTEM_END ((ULONG)0xEFFFFFF0) |
#define | MM_MINIMUM_SYSTEM_PTES 9000 |
#define | MM_MAXIMUM_SYSTEM_PTES 35000 |
#define | MM_DEFAULT_SYSTEM_PTES 15000 |
#define | MM_MAX_INITIAL_NONPAGED_POOL ((ULONG)(128*1024*1024)) |
#define | MM_MAX_ADDITIONAL_NONPAGED_POOL ((ULONG)(192*1024*1024)) |
#define | MM_MAX_PAGED_POOL ((ULONG)(176*1024*1024)) |
#define | MM_MAX_TOTAL_POOL (((ULONG)MM_NONPAGED_POOL_END) - ((ULONG)(MM_PAGED_POOL_START))) |
#define | PAGE_DIRECTORY_MASK ((ULONG)0x003FFFFF) |
#define | MM_VA_MAPPED_BY_PDE (0x400000) |
#define | LOWEST_IO_ADDRESS (0x80000000) |
#define | PTE_SHIFT (2) |
#define | PHYSICAL_ADDRESS_BITS (32) |
#define | MM_PROTO_PTE_ALIGNMENT ((ULONG)MM_MAXIMUM_NUMBER_OF_COLORS * (ULONG)PAGE_SIZE) |
#define | MAX_PAGE_FILES 16 |
#define | FIRST_MAPPING_PTE ((ULONG)0xC0400000) |
#define | NUMBER_OF_MAPPING_PTES 255 |
#define | LAST_MAPPING_PTE ((ULONG)((ULONG)FIRST_MAPPING_PTE + (NUMBER_OF_MAPPING_PTES * PAGE_SIZE))) |
#define | IMAGE_MAPPING_PTE ((PMMPTE)((ULONG)LAST_MAPPING_PTE + PAGE_SIZE)) |
#define | ZEROING_PAGE_PTE ((PMMPTE)((ULONG)IMAGE_MAPPING_PTE + PAGE_SIZE)) |
#define | WORKING_SET_LIST ((PVOID)((ULONG)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 ((ULONG)0xC07FF000) |
#define | MM_PTE_PROTOTYPE_MASK 0x1 |
#define | MM_PTE_VALID_MASK 0x4 |
#define | MM_PTE_CACHE_DISABLE_MASK 0x28 |
#define | MM_PTE_TRANSITION_MASK 0x2 |
#define | MM_PTE_WRITE_MASK 0x200 |
#define | MM_PTE_COPY_ON_WRITE_MASK 0x400 |
#define | MM_PTE_NOACCESS 0x0 |
#define | MM_PTE_READONLY 0x3 |
#define | MM_PTE_READWRITE (0x3 | MM_PTE_WRITE_MASK) |
#define | MM_PTE_WRITECOPY (0x3 | MM_PTE_WRITE_MASK | MM_PTE_COPY_ON_WRITE_MASK) |
#define | MM_PTE_EXECUTE 0x3 |
#define | MM_PTE_EXECUTE_READ 0x3 |
#define | MM_PTE_EXECUTE_READWRITE (0x3 | MM_PTE_WRITE_MASK) |
#define | MM_PTE_EXECUTE_WRITECOPY (0x3 | MM_PTE_WRITE_MASK | MM_PTE_COPY_ON_WRITE_MASK) |
#define | MM_PTE_NOCACHE (MM_PTE_CACHE_DISABLE_MASK) |
#define | MM_PTE_GUARD 0x0 |
#define | MM_PTE_CACHE 0x0 |
#define | MM_PROTECT_FIELD_SHIFT 3 |
#define | MM_ZERO_PTE 0 |
#define | MM_ZERO_KERNEL_PTE 0 |
#define | MM_DEMAND_ZERO_WRITE_PTE (MM_READWRITE << MM_PROTECT_FIELD_SHIFT) |
#define | MM_KERNEL_DEMAND_ZERO_PTE (MM_READWRITE << MM_PROTECT_FIELD_SHIFT) |
#define | MM_KERNEL_NOACCESS_PTE (MM_NOACCESS << MM_PROTECT_FIELD_SHIFT) |
#define | MM_PTE_CLEAN 3 |
#define | MM_PTE_DIRTY 0 |
#define | MM_STACK_ALIGNMENT 0x0 |
#define | MM_STACK_OFFSET 0x0 |
#define | PDE_PER_PAGE ((ULONG)1024) |
#define | PTE_PER_PAGE ((ULONG)1024) |
#define | MM_USER_PAGE_TABLE_PAGES (512) |
#define | MM_NUMBER_OF_COLORS 2 |
#define | MM_MAXIMUM_NUMBER_OF_COLORS 2 |
#define | MM_COLOR_MASK 1 |
#define | MM_COLOR_STRIDE 3 |
#define | MM_COLOR_ALIGNMENT 0x2000 |
#define | MM_COLOR_MASK_VIRTUAL 0x1000 |
#define | MM_SECONDARY_COLORS_DEFAULT ((256*1024) >> PAGE_SHIFT) |
#define | MM_SECONDARY_COLORS_MIN (2) |
#define | MM_SECONDARY_COLORS_MAX (2048) |
#define | INITIALIZE_DIRECTORY_TABLE_BASE(dirbase, pfn) *((PULONG)(dirbase)) = ((pfn) << PAGE_SHIFT) |
#define | MI_MAKE_VALID_PTE(OUTPTE, FRAME, PMASK, PPTE) |
#define | MI_MAKE_VALID_PTE_TRANSITION(OUTPTE, PROTECT) |
#define | MI_MAKE_TRANSITION_PTE(OUTPTE, PAGE, PROTECT, PPTE) |
#define | MI_MAKE_TRANSITION_PTE_VALID(OUTPTE, PPTE) |
#define | MI_SET_PTE_DIRTY(PTE) (PTE).u.Hard.Dirty = MM_PTE_DIRTY |
#define | MI_SET_PTE_CLEAN(PTE) (PTE).u.Hard.Dirty = MM_PTE_CLEAN |
#define | MI_IS_PTE_DIRTY(PTE) ((PTE).u.Hard.Dirty != MM_PTE_CLEAN) |
#define | MI_SET_GLOBAL_BIT_IF_SYSTEM(OUTPTE, PPTE) |
#define | MI_SET_GLOBAL_STATE(PTE, STATE) |
#define | MI_ENABLE_CACHING(PTE) ((PTE).u.Hard.CacheDisable = (PTE).u.Hard.GuardedStorage = 0) |
#define | MI_DISABLE_CACHING(PTE) ((PTE).u.Hard.CacheDisable = (PTE).u.Hard.GuardedStorage = 1) |
#define | MI_IS_CACHING_DISABLED(PPTE) ((PPTE)->u.Hard.CacheDisable == 1) |
#define | MI_SET_PFN_DELETED(PPFN) ((PPFN)->PteAddress = (PMMPTE)0xFFFFFFFF) |
#define | MI_IS_PFN_DELETED(PPFN) ((PPFN)->PteAddress == (PMMPTE)0xFFFFFFFF) |
#define | MI_CHECK_PAGE_ALIGNMENT(PAGE, COLOR) |
#define | MI_INITIALIZE_HYPERSPACE_MAP(HYPER_PAGE) |
#define | MI_GET_PAGE_COLOR_FROM_PTE(PTEADDRESS) |
#define | MI_GET_PAGE_COLOR_FROM_VA(ADDRESS) |
#define | MI_PAGE_COLOR_PTE_PROCESS(PTE, COLOR) |
#define | MI_PAGE_COLOR_VA_PROCESS(ADDRESS, COLOR) |
#define | MI_GET_NEXT_COLOR(COLOR) ((COLOR + 1) & MM_COLOR_MASK) |
#define | MI_GET_PREVIOUS_COLOR(COLOR) ((COLOR - 1) & MM_COLOR_MASK) |
#define | MI_GET_SECONDARY_COLOR(PAGE, PFN) ((((ULONG)(PAGE) & MmSecondaryColorMask)) | (PFN)->u3.e1.PageColor) |
#define | MI_GET_COLOR_FROM_SECONDARY(COLOR) ((COLOR) & MM_COLOR_MASK) |
#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_PAGE_FILE ((ULONG)(0x0F8)) |
#define | SET_PAGING_FILE_INFO(PTE, FILEINFO, OFFSET) |
#define | MiPteToProto(lpte) |
#define | MiProtoAddressForPte(proto_va) ((ULONG)((((ULONG)proto_va - MmProtopte_Base) << 2) | MM_PTE_PROTOTYPE_MASK)) |
#define | MiProtoAddressForKernelPte(proto_va) MiProtoAddressForPte(proto_va) |
#define | MiGetSubsectionAddress(lpte) |
#define | MiGetSubsectionAddressForPte(VA) |
#define | MiGetPdeAddress(va) ((PMMPTE)(((((ULONG)(va)) >> 22) << 2) + PDE_BASE)) |
#define | MiGetPteAddress(va) ((PMMPTE)(((((ULONG)(va)) >> 12) << 2) + PTE_BASE)) |
#define | MiGetPdeOffset(va) (((ULONG)(va)) >> 22) |
#define | MiGetPteOffset(va) ((((ULONG)(va)) << 10) >> 22) |
#define | MiGetVirtualAddressMappedByPte(va) ((PVOID)((ULONG)(va) << 10)) |
#define | GET_PAGING_FILE_NUMBER(PTE) ((((PTE).u.Long) >> 8) & 0xF) |
#define | GET_PAGING_FILE_OFFSET(PTE) ((((PTE).u.Long) >> 12) & 0x000FFFFF) |
#define | IS_PTE_NOT_DEMAND_ZERO(PTE) ((PTE).u.Long & (ULONG)0xFFFFF007) |
#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) (((ULONG)Va >= KSEG0_BASE) && ((ULONG)Va < KSEG2_BASE)) |
#define | MI_CONVERT_PHYSICAL_TO_PFN(Va) (((ULONG)Va << 2) >> 14) |
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_TRANSITION | MMPTE_TRANSITION |
typedef _MMPTE_SOFTWARE | MMPTE_SOFTWARE |
typedef _MMPTE_PROTOTYPE | MMPTE_PROTOTYPE |
typedef _MMPTE_SUBSECTION | MMPTE_SUBSECTION |
typedef _MMPTE_LIST | MMPTE_LIST |
typedef _MMPTE | MMPTE |
typedef MMPTE * | PMMPTE |
Variables |
ULONG | MmSecondaryColorMask |
MMPFNLIST | MmFreePagesByPrimaryColor [2][MM_MAXIMUM_NUMBER_OF_COLORS] |
PMMCOLOR_TABLES | MmFreePagesByColor [2] |
ULONG | MmTotalPagesForPagingFile |