http://blogs.citrix.com/2011/10/13/wow64-memory-mapping-of-32bit-apps-running-on-a-64bit-windows/
Umberto, you are a wizard and genius in all of this, how possible do you think it would be that FSX 32 bit can be made to use more than 4.0 G ?
The article is a bit misleading or not very clear.
The author tested several *separate* 32 bit processes, and he proved that Windows 64 bit does a good job allowing to use more then 4GB in total. But this is not news. Under Windows 64 bit, EACH separate process can address UP TO 4GB in its own "
Virtual
Address
Space". It's "Virtual", because the real address seen by the OS is somewhere in the 64 bit address space, but the application will only see a private 4GB area.
In fact, an user commented:
This shows that a 64 bit system can 32 bit processes up to the limit of its memory, but it does not indicate the individual 32 bit processes can ACCESS memory beyond the 4GB allocated to it. You have just demonstrated that the 64 bit operating system can map 32 bit processes to any area of physical memory within its address space, which is to be expected. Each of those 32 bit processes is STILL limited to 4G of physical memory, as indicated by your status display.
And the author replied:
thanks for your comment, but I think you got me wrong (maybe I have to rephrase parts of the blog). I just wanted to find out whether an 32bit application can be loaded to memory adresses above 4GB or not
The 4GB limitation (provided the application has the IMAGE_FILE_LARGE_ADDRESS_AWARE flag set, otherwise it's only 2GB) it's something we must live with, and cannot be bypassed with any software trick.
The only thing we can do, as developers, is trying to move AWAY from FSX in-process as much as possible of our code.
That's what we do with our Couatl engine.
Years ago, lots of interactivity in our products was provided by the Add-on Manager, which is an in-process FSX .DLL, so it will have to share VAS space with FSX.
Today, the Add-on Manager has become dumber and dumber, and most of the work is made by Couatl, which is an out-of-process .EXE, so it has ITS OWN 2GB address space, and it doesn't take away precious VAS from FSX, regardless how complex its code became. And it's fairly complex now, considering the whole GSX logic runs inside it.