mirror of
https://github.com/reactos/reactos.git
synced 2024-09-11 05:12:43 +00:00
[NTOSKRNL]: CORE-6675 #resolve #time 5h #comment Fixed the ASSERTion by increasing system view space to 36MB instead of 20MB. Note that the real bug is that we never free desktop heaps. But why fix the bug when the only thing people care about is "fix the tests!". So let's fix the tests instead of the bug :) Also, fix a bug in MiCheckForSessionPde which broke user32_apitest. All should be good now.
svn path=/trunk/; revision=57348
This commit is contained in:
parent
46eff17170
commit
83736d77a5
|
@ -153,7 +153,7 @@ MiCheckPdeForSessionSpace(IN PVOID Address)
|
||||||
{
|
{
|
||||||
MMPTE TempPde;
|
MMPTE TempPde;
|
||||||
PMMPTE PointerPde;
|
PMMPTE PointerPde;
|
||||||
PVOID SessionPageTable;
|
PVOID SessionAddress;
|
||||||
ULONG Index;
|
ULONG Index;
|
||||||
|
|
||||||
/* Is this a session PTE? */
|
/* Is this a session PTE? */
|
||||||
|
@ -171,12 +171,12 @@ MiCheckPdeForSessionSpace(IN PVOID Address)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Now get the session-specific page table for this address */
|
/* Now get the session-specific page table for this address */
|
||||||
SessionPageTable = MiPteToAddress(Address);
|
SessionAddress = MiPteToAddress(Address);
|
||||||
PointerPde = MiPteToAddress(Address);
|
PointerPde = MiAddressToPde(Address);
|
||||||
if (PointerPde->u.Hard.Valid) return STATUS_WAIT_1;
|
if (PointerPde->u.Hard.Valid) return STATUS_WAIT_1;
|
||||||
|
|
||||||
/* It's not valid, so find it in the page table array */
|
/* It's not valid, so find it in the page table array */
|
||||||
Index = ((ULONG_PTR)SessionPageTable - (ULONG_PTR)MmSessionBase) >> 22;
|
Index = ((ULONG_PTR)SessionAddress - (ULONG_PTR)MmSessionBase) >> 22;
|
||||||
TempPde.u.Long = MmSessionSpace->PageTables[Index].u.Long;
|
TempPde.u.Long = MmSessionSpace->PageTables[Index].u.Long;
|
||||||
if (TempPde.u.Hard.Valid)
|
if (TempPde.u.Hard.Valid)
|
||||||
{
|
{
|
||||||
|
@ -187,7 +187,7 @@ MiCheckPdeForSessionSpace(IN PVOID Address)
|
||||||
|
|
||||||
/* We don't seem to have allocated a page table for this address yet? */
|
/* We don't seem to have allocated a page table for this address yet? */
|
||||||
DbgPrint("MiCheckPdeForSessionSpace: No Session PDE for PTE %p, %p\n",
|
DbgPrint("MiCheckPdeForSessionSpace: No Session PDE for PTE %p, %p\n",
|
||||||
PointerPde->u.Long, SessionPageTable);
|
PointerPde->u.Long, SessionAddress);
|
||||||
DbgBreakPoint();
|
DbgBreakPoint();
|
||||||
return STATUS_ACCESS_VIOLATION;
|
return STATUS_ACCESS_VIOLATION;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue