BOOLEAN
RtlDispatchException(
IN PEXCEPTION_RECORD ExceptionRecord,
IN PCONTEXT ContextRecord
);
Routine Description:
This function attempts to dispatch an exception to a frame based
handler by searching backwards through the stack based call frames.
The search begins with the frame specified in the context record and
continues backward until either a handler is found that handles the
exception, the stack is found to be invalid (i.e., out of limits or
unaligned), or the end of the call hierarchy is reached.
As each frame is encounter, the PC where control left the corresponding
function is determined and used to lookup exception handler information
in the runtime function table built by the linker. If the respective
routine has an exception handler, then the handler is called. If the
handler does not handle the exception, then the prologue of the routine
is executed backwards to "unwind" the effect of the prologue and then
the next frame is examined.
Arguments:
ExceptionRecord - Supplies a pointer to an exception record.
ContextRecord - Supplies a pointer to a context record.
Return Value:
If the exception is handled by one of the frame based handlers, then
a value of TRUE is returned. Otherwise a value of FALSE is returned.