Я читал, что 32-разрядные приложения Windows ограничены 2 ГБ ОЗУ, поскольку верхние 2 ГБ адресного пространства зарезервированы для ОС Windows (и, iirc, VRAM). Если вы используете флаг / 3GB на 32-битном WinXp, вы можете получить до 3 ГБ оперативной памяти, доступной для адресации, но обычно вам нужно настроить значения userva. Я слышал, что в 64-разрядных выпусках Windows с большим флагом определения адресов в заголовке PE и более 4 ГБ ОЗУ приложение может использовать все 4 ГБ адресного пространства для управления собственной памятью.
С другой стороны, я почти уверен, что когда вы вызываете Windows API, вы должны вызывать ячейки памяти в предоставленном вами 32-битном адресном пространстве. Итак, какой именно объем памяти может использовать 32-разрядное приложение с поддержкой больших адресов для себя в 64-разрядной среде? А почему?
Спасибо.