Bei einem 32Bit Windowssystem teilt sich der virtuelle Speicher (max. 4GB) in jeweils 2GB für Kernel- und Userspace. Mit dem /3GB (alternativ: /userva) Switch in der boot.ini kann dies in 1GB Kernel- / 3GB Usermemory geändert werden.
Damit ein Prozess allerdings die vollen 3GB Usermemory ausnutzen kann muss im Imageheader IMAGE_FILE_LARGE_ADDRESS_AWARE beim kompilieren gesetzt worden sein.
Imagecfg.exe – ein Tools aus dem MS Resource Kit – zeigt alle gesetzten Imageheader an. Diese lassen sich ggf. auch editieren.
Weiterhin gibt ein „Terminal Server aware“ Header. Spannend: selbst bei Microsofts UPHClean ist dieses Bit nicht gesetzt
http://msdn.microsoft.com/en-us/library/ms680349(VS.85).aspx
