Fix boot regression.
[reactos.git] / reactos / ntoskrnl / mm / process.c
index 0972f47..2f1baed 100644 (file)
@@ -18,6 +18,9 @@ extern ULONG NtMinorVersion;
 extern ULONG NtOSCSDVersion;
 extern ULONG NtGlobalFlag;
 
+#define MM_HIGHEST_VAD_ADDRESS \
+    (PVOID)((ULONG_PTR)MM_HIGHEST_USER_ADDRESS - (16 * PAGE_SIZE))
+
 /* FUNCTIONS *****************************************************************/
 
 PVOID
@@ -198,16 +201,12 @@ MmCreatePeb(PEPROCESS Process)
     NTSTATUS Status;
     KAFFINITY ProcessAffinityMask = 0;
     SectionOffset.QuadPart = (ULONGLONG)0;
-
     DPRINT("MmCreatePeb\n");
 
     /* Allocate the PEB */
-    Peb = MiCreatePebOrTeb(Process, (PVOID)PEB_BASE);
-    if (Peb != (PVOID)PEB_BASE)
-    {
-        DPRINT1("MiCreatePebOrTeb() returned %x\n", Peb);
-        return STATUS_UNSUCCESSFUL;
-    }
+    Peb = MiCreatePebOrTeb(Process,
+                           (PVOID)((ULONG_PTR)MM_HIGHEST_VAD_ADDRESS + 1));
+    ASSERT(Peb == (PVOID)0x7FFDF000)
 
     /* Map NLS Tables */
     DPRINT("Mapping NLS\n");
@@ -345,7 +344,8 @@ MmCreateTeb(PEPROCESS Process,
     }
 
     /* Allocate the TEB */
-    Teb = MiCreatePebOrTeb(Process, (PVOID)TEB_BASE);
+    Teb = MiCreatePebOrTeb(Process,
+                           (PVOID)((ULONG_PTR)MM_HIGHEST_VAD_ADDRESS + 1));
 
     /* Initialize the PEB */
     RtlZeroMemory(Teb, sizeof(TEB));