Quote Originally Posted by Eric C. View Post
I think, when the app attempts to allocate another portion of memory, and runs across lack of free memory, the exception handler for this kind of thing will just run another process, copy the image into its address space, copy some critical information from the address space of the process having trouble, and the whole thing will start again. If there are some problems with system resources in general, the handler can always terminate a few other processes to get the resources it needs. It does have all the required privileges to do that.
Offtopic mode
Some questions:
1) As a programmer, do YOU always include exception handlers for the 'out of memory' error? Do you make them so sophisticated that they even try to terminate other processes? Do you handle 'access denied' errors within your 'out of memory' exception handler when it tries to terminate something? And how terminating other processes will help you in getting more virtual address space for your particular application?
2) Ever heard of interlocked (cross-referenced) resources with no accessible valid handlers?