//\r
// The smaller granularity of page must be needed.\r
//\r
+ ASSERT (Level > 1);\r
+\r
NewPageTable = AllocatePageTableMemory (1);\r
ASSERT (NewPageTable != NULL);\r
\r
++EntryIndex) {\r
NewPageTable[EntryIndex] = PhysicalAddress | AddressEncMask |\r
IA32_PG_P | IA32_PG_RW;\r
- if (Level > 1) {\r
+ if (Level > 2) {\r
NewPageTable[EntryIndex] |= IA32_PG_PS;\r
}\r
- PhysicalAddress += LevelSize[Level];\r
+ PhysicalAddress += LevelSize[Level - 1];\r
}\r
\r
PageTable[Index] = (UINT64)(UINTN)NewPageTable | AddressEncMask |\r