At the moment, I'm aware of two scenarios where windows takes control of a thread's execution due to "Error oriented reasons" (though sometimes used as a code flow mechanisms , such as with try/catch blocks):
SEH (and it's c,c++ wrappers -
__try/__exceptandtry/catchrespectively) for which there's also anAPIthat one can use to generate his own Exceptions for instance.stack corruption.
As far as I know, upon occurrence of case (2) the OS shuts down the entire process , without any user notification.
My wonders as follow:
Is there any other documented way for a
user-modeapplication thread to "mess-up" in a manner of OS taking control?other than stack corruption , is there any scenarios where the entire process shuts down un-notified?
Is there any case where a
catchblock, a__exceptblock , or even more aggressively , a function in manually placedEXCEPTION_RECORDinFS:[0](as shown in Pietrek's article) , will not be given control when an exception is being thrown?