diff --git a/sdk/xtdk/amd64/mmtypes.h b/sdk/xtdk/amd64/mmtypes.h index f05f0801..05622444 100644 --- a/sdk/xtdk/amd64/mmtypes.h +++ b/sdk/xtdk/amd64/mmtypes.h @@ -73,6 +73,9 @@ #define MM_PTE_PROTOTYPE 0x0000000000000400ULL #define MM_PTE_TRANSITION 0x0000000000000800ULL +/* PTE frame bits */ +#define MM_PTE_FRAME_BITS 57 + /* PTE protection bits */ #define MM_PTE_PROTECTION_BITS 5 diff --git a/sdk/xtdk/i686/mmtypes.h b/sdk/xtdk/i686/mmtypes.h index 2e1ba89e..469a7083 100644 --- a/sdk/xtdk/i686/mmtypes.h +++ b/sdk/xtdk/i686/mmtypes.h @@ -69,6 +69,9 @@ #define MM_PTE_PROTOTYPE 0x00000400 #define MM_PTE_TRANSITION 0x00000800 +/* PTE frame bits */ +#define MM_PTE_FRAME_BITS 25 + /* PTE protection bits */ #define MM_PTE_PROTECTION_BITS 5 @@ -386,6 +389,7 @@ typedef struct _MMPFN USHORT ReferenceCount; } e2; } u3; + ULONG UsedPageTableEntries; union { MMPTE OriginalPte; @@ -396,12 +400,11 @@ typedef struct _MMPFN ULONG_PTR EntireFrame; struct { - ULONG_PTR PteFrame:26; + ULONG_PTR PteFrame:25; ULONG_PTR InPageError:1; ULONG_PTR VerifierAllocation:1; ULONG_PTR AweAllocation:1; - ULONG_PTR LockCharged:1; - ULONG_PTR KernelStack:1; + ULONG_PTR Priority:3; ULONG_PTR MustBeCached:1; }; } u4; diff --git a/sdk/xtdk/mmtypes.h b/sdk/xtdk/mmtypes.h index 193ca8f1..1c0f8a53 100644 --- a/sdk/xtdk/mmtypes.h +++ b/sdk/xtdk/mmtypes.h @@ -14,6 +14,18 @@ #include ARCH_HEADER(xtstruct.h) +/* Number of hyper space pages */ +#define MM_HYPERSPACE_PAGE_COUNT 255 + +/* Number of paging colors */ +#define MM_PAGING_COLORS 64 + +/* PTE frame mask definition */ +#define MM_PFN_PTE_FRAME (((ULONG_PTR)1 << MM_PTE_FRAME_BITS) - 1) + +/* Number of reserved zeroed PTEs */ +#define MM_RESERVED_ZERO_PTES 32 + /* Memory manager page lists */ typedef enum _MMPAGELISTS { @@ -27,6 +39,15 @@ typedef enum _MMPAGELISTS TransitionPage = 7 } MMPAGELISTS, *PMMPAGELISTS; +/* Page cache attributes */ +typedef enum _MMPFN_CACHE_ATTRIBUTE +{ + PfnNonCached, + PfnCached, + PfnWriteCombined, + PfnNotMapped +} MMPFN_CACHE_ATTRIBUTE, *PMMPFN_CACHE_ATTRIBUTE; + /* Page table pool types */ typedef enum _MMSYSTEM_PTE_POOL_TYPE { diff --git a/sdk/xtdk/xtstruct.h b/sdk/xtdk/xtstruct.h index 3b2203d6..50c57c0b 100644 --- a/sdk/xtdk/xtstruct.h +++ b/sdk/xtdk/xtstruct.h @@ -49,6 +49,7 @@ typedef enum _KTIMER_TYPE KTIMER_TYPE, *PKTIMER_TYPE; typedef enum _KUBSAN_DATA_TYPE KUBSAN_DATA_TYPE, *PKUBSAN_DATA_TYPE; typedef enum _LOADER_MEMORY_TYPE LOADER_MEMORY_TYPE, *PLOADER_MEMORY_TYPE; typedef enum _MMPAGELISTS MMPAGELISTS, *PMMPAGELISTS; +typedef enum _MMPFN_CACHE_ATTRIBUTE MMPFN_CACHE_ATTRIBUTE, *PMMPFN_CACHE_ATTRIBUTE; typedef enum _MMSYSTEM_PTE_POOL_TYPE MMSYSTEM_PTE_POOL_TYPE, *PMMSYSTEM_PTE_POOL_TYPE; typedef enum _MODE MODE, *PMODE; typedef enum _RTL_VARIABLE_TYPE RTL_VARIABLE_TYPE, *PRTL_VARIABLE_TYPE;