diff --git a/sdk/xtdk/amd64/mmtypes.h b/sdk/xtdk/amd64/mmtypes.h index 9eccd34..7f7e84a 100644 --- a/sdk/xtdk/amd64/mmtypes.h +++ b/sdk/xtdk/amd64/mmtypes.h @@ -60,6 +60,7 @@ /* PTE protection flags */ #define MM_PTE_NOEXECUTE 0x8000000000000000ULL +#define MM_PTE_GUARDED 0x8000000000000018ULL #define MM_PTE_PROTECT 0x8000000000000612ULL /* PTE cache flags */ diff --git a/sdk/xtdk/i686/mmtypes.h b/sdk/xtdk/i686/mmtypes.h index 749caea..4445543 100644 --- a/sdk/xtdk/i686/mmtypes.h +++ b/sdk/xtdk/i686/mmtypes.h @@ -56,6 +56,7 @@ /* PTE protection flags */ #define MM_PTE_NOEXECUTE 0x00000000 +#define MM_PTE_GUARDED 0x00000018 #define MM_PTE_PROTECT 0x00000612 /* PTE cache flags */ diff --git a/xtoskrnl/mm/kpool.cc b/xtoskrnl/mm/kpool.cc index b026dc9..067219d 100644 --- a/xtoskrnl/mm/kpool.cc +++ b/xtoskrnl/mm/kpool.cc @@ -52,7 +52,7 @@ MM::KernelPool::AllocateKernelStack(OUT PVOID *Stack, } /* Set up a template for an invalid PTE */ - MM::Paging::SetPte(&InvalidPte, 0, 0x18); + MM::Paging::SetPte(&InvalidPte, 0, MM_PTE_GUARDED); /* Set up a template for a valid, writable stack PTE */ MM::Paging::ClearPte(&TempPte);