Handle exceptions raised by the timer DPCs

This commit is contained in:
ergo720 2019-01-10 19:32:15 +01:00
parent 113717b7c4
commit 3b7ffd32c4
1 changed files with 42 additions and 12 deletions

View File

@ -594,10 +594,20 @@ VOID NTAPI xboxkrnl::KiTimerExpiration(
for (i = 0; DpcCalls; DpcCalls--, i++)
{
/* Call the DPC */
DpcEntry[i].Routine(DpcEntry[i].Dpc,
DpcEntry[i].Context,
UlongToPtr(SystemTime.u.LowPart),
UlongToPtr(SystemTime.u.HighPart));
DBG_PRINTF("%s, calling DPC at 0x%.8X\n", __func__, DpcEntry[i].Routine);
__try {
// Call the Deferred Procedure :
DpcEntry[i].Routine(
DpcEntry[i].Dpc,
DpcEntry[i].Context,
UlongToPtr(SystemTime.u.LowPart),
UlongToPtr(SystemTime.u.HighPart)
);
}
__except (EmuException(GetExceptionInformation()))
{
EmuLog(LOG_LEVEL::WARNING, "Problem with ExceptionFilter!");
}
}
/* Reset accounting */
@ -634,10 +644,20 @@ VOID NTAPI xboxkrnl::KiTimerExpiration(
for (i = 0; DpcCalls; DpcCalls--, i++)
{
/* Call the DPC */
DpcEntry[i].Routine(DpcEntry[i].Dpc,
DpcEntry[i].Context,
UlongToPtr(SystemTime.u.LowPart),
UlongToPtr(SystemTime.u.HighPart));
DBG_PRINTF("%s, calling DPC at 0x%.8X\n", __func__, DpcEntry[i].Routine);
__try {
// Call the Deferred Procedure :
DpcEntry[i].Routine(
DpcEntry[i].Dpc,
DpcEntry[i].Context,
UlongToPtr(SystemTime.u.LowPart),
UlongToPtr(SystemTime.u.HighPart)
);
}
__except (EmuException(GetExceptionInformation()))
{
EmuLog(LOG_LEVEL::WARNING, "Problem with ExceptionFilter!");
}
}
/* Reset accounting */
@ -671,10 +691,20 @@ VOID NTAPI xboxkrnl::KiTimerExpiration(
for (i = 0; DpcCalls; DpcCalls--, i++)
{
/* Call the DPC */
DpcEntry[i].Routine(DpcEntry[i].Dpc,
DpcEntry[i].Context,
UlongToPtr(SystemTime.u.LowPart),
UlongToPtr(SystemTime.u.HighPart));
DBG_PRINTF("%s, calling DPC at 0x%.8X\n", __func__, DpcEntry[i].Routine);
__try {
// Call the Deferred Procedure :
DpcEntry[i].Routine(
DpcEntry[i].Dpc,
DpcEntry[i].Context,
UlongToPtr(SystemTime.u.LowPart),
UlongToPtr(SystemTime.u.HighPart)
);
}
__except (EmuException(GetExceptionInformation()))
{
EmuLog(LOG_LEVEL::WARNING, "Problem with ExceptionFilter!");
}
}
/* Lower IRQL if we need to */