He estado leyendo que las aplicaciones Windows de 32 bits están limitadas a 2 GB de RAM porque los 2GB superiores de espacio de direcciones están reservados para el sistema operativo Windows (y, iirc, VRAM). Si usa el indicador/3GB en WinXp de 32 bits, puede obtener hasta 3 GB de RAM disponibles para el direccionamiento, pero por lo general debe modificarlos con los valores userva. He oído que en las ediciones de 64 bits de Windows, con un indicador de dirección completa grande en el encabezado PE y más de 4 GB de RAM, es posible que una aplicación use todos los 4 GB de espacio de direcciones para su propia administración de memoria.¿Cómo funciona la bandera Large Address Aware para aplicaciones de 32 bits en computadoras de 64 bits?
Por otro lado, estoy bastante seguro de que cuando llame a la API de Windows, debe llamar a las ubicaciones de memoria dentro del espacio de direcciones de 32 bits que se le proporciona. Entonces, ¿qué cantidad de memoria RAM puede usar una aplicación de 32 bits para grandes direcciones en un entorno de 64 bits? ¿Y por qué?
Gracias.
Espere un momento, en ese caso, ¿es posible utilizar AWE en un sistema operativo Windows Xp de 32 bits para aprovechar adecuadamente 4 GB de RAM en lugar de la tontería/3GB? –
+1 Si planea ejecutar bajo/LARGEADDRESSAWARE, tenga cuidado de que varios software tengan errores con punteros de 32 bits> 2 GB. Incluso algunas funciones de MS API (¡Te estoy mirando GetCursorPos en Vista!) La forma de eliminar estos problemas, y trabajar en su alrededor si es necesario usar [asignación de memoria de arriba hacia abajo] (http://msdn.microsoft) .com/ja-jp/isv/bb190527 (l = en-us)) que está habilitado con una configuración de registro. –
Sí, pero tiene que asignar explícitamente las páginas de memoria física a un espacio de direcciones virtual. Es similar al cambio de banco VESA de la era antigua de DOS. – MSN