If a page fault occurs in user mode, we must deliver user mode apc's.

svn path=/trunk/; revision=16697
This commit is contained in:
Hartmut Birr 2005-07-23 08:14:21 +00:00
parent d5ae40868c
commit 683d42211c

View file

@ -62,14 +62,12 @@ NTSTATUS MmPageFault(ULONG Cs,
Status = MmNotPresentFault(Mode, Cr2, FALSE);
}
if (KeGetCurrentThread() != NULL &&
KeGetCurrentThread()->Alerted[UserMode] != 0 &&
Cs != KERNEL_CS)
if (Mode == UserMode && KeGetCurrentThread()->ApcState.UserApcPending)
{
KIRQL oldIrql;
KeRaiseIrql(APC_LEVEL, &oldIrql);
KiDeliverApc(KernelMode, NULL, NULL);
KiDeliverApc(UserMode, NULL, NULL);
KeLowerIrql(oldIrql);
}