I have experienced a problem that the function I passed to the SetUnhandledExceptionFilter didn\'t get called when the exception code c0000374 raising. But it works fine wit
The exception is actually caught directly at its source, in RtlReportCriticalFailure
, called by the heap manager once heap corruption is detected. The SEH handler registered in this function calls RtlReportException
, quickly followed by NtTerminateProcess
.
I can only conclude that SEH handlers are avoided on purpose -- with the heap corrupted, the stack contents (and therefore SEH registrations) are suspect too; and the application can't reasonably recover from heap corruption anyway.