[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:
Alex Ionescu 2012-09-20 07:44:43 +00:00
parent 46eff17170
commit 83736d77a5

View file

@ -153,7 +153,7 @@ MiCheckPdeForSessionSpace(IN PVOID Address)
{
MMPTE TempPde;
PMMPTE PointerPde;
PVOID SessionPageTable;
PVOID SessionAddress;
ULONG Index;
/* Is this a session PTE? */
@ -171,12 +171,12 @@ MiCheckPdeForSessionSpace(IN PVOID Address)
}
/* Now get the session-specific page table for this address */
SessionPageTable = MiPteToAddress(Address);
PointerPde = MiPteToAddress(Address);
SessionAddress = MiPteToAddress(Address);
PointerPde = MiAddressToPde(Address);
if (PointerPde->u.Hard.Valid) return STATUS_WAIT_1;
/* 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;
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? */
DbgPrint("MiCheckPdeForSessionSpace: No Session PDE for PTE %p, %p\n",
PointerPde->u.Long, SessionPageTable);
PointerPde->u.Long, SessionAddress);
DbgBreakPoint();
return STATUS_ACCESS_VIOLATION;
}