Podemos encontrar muchas páginas en Internet que nos explican como alcanzar el límite de 4GB de memoria RAM impuesto por Microsoft para los sistemas operativos de 32 bits utilizando PAE, pero no hay apenas información en español de como superar estos 4Gb para utilizar incluso 128Gb de RAM en Windows 2000/XP/2003 (NT5).
Las ediciones de 32-Bit que están limitadas a 4 GB, son principalmente por dos motivos:
· El primer motivo es por razones de estabilidad del sistema, ya que en dichas ediciones de 32-Bit, se conoce que ciertos drivers se vuelven inestables al encontrar direcciones físicas por encima de los 4 Gb, aparte de otro tipo de conflictos,
por ende, hazte la siguiente pregunta antes de continuar:
¿Realmente merece la pena arriesgarse a fastidiar la instalación actual del SO?. ...Me parece que deberías escuchar la sugerencia del compañero @Engel Lex.
· El segundo motivo es simplemente por una decisión de licencia de Microsoft, pero los motivos al parecer se desconocen ( quien sabe, podría ser algo del estilo:
"si quieres usar +4 Gb, fastidiate y compra Windows de 64 Bit, que para algo vendemos ese producto." "...jódete, consumidor" )
Así pues, y según lo que he leido ...yo no lo he verificado, así es como funciona la limitación de forma interna:
La indocumentada función
ZwQueryLicenseValue por Microsoft (aquí:
https://social.msdn.microsoft.com/Search/en-US/windows/desktop?query=ZwQueryLicenseValue) de la API de Windows (que podemos ver la firma documentada de la función aquí:
http://www.geoffchappell.com/studies/windows/km/ntoskrnl/api/ex/slmem/queryvalue.htm ) es la que se encarga de leer un valor de registro que impone el límite de 4 GB, dicha función se llama a partir de un método con el nombre/símbolo
MxMemoryLicense.
¿para que sirve saber como funciona de manera interna la limitación por licencia?, pues sirve para que con algo de conocimientos sobre ingenieria inversa, tú u otra persona pueda tener la referencia necesaria para cargar el archivo en un desamblador, localizar la instrucción que llama a la función
ZwQueryLicenseValue, eliminar ese
check, y reconstruir el archivo con los nuevos cambios, y ya con eso, supuestamente, se eliminaría completamente el impedimento de los +4GB.
(hay gente que lo ha hecho y dice que funciona, puedes encontrar ya la dll modificada si googleas por el nombre de dicha función, pero solo encontré el archivo modificado para windows Vista y 7, y obviamente
NO debes modificar las dependencias del kernel de Windows por versiones diferentes ya que de hacerlo destruirás el funcionamiento del SO, así que debes hacer las modificaciones necesarias a la dll tu mismo.)
Fuente(s):
http://en.wikipedia.org/wiki/Physical_Address_Extension#cite_note-geoffchappell.com-10http://en.wikipedia.org/wiki/Microsoft_Windows_library_fileshttp://www.geoffchappell.com/notes/windows/license/memory.htmhttps://social.msdn.microsoft.com/Search/en-US/windows/desktop?query=ZwQueryLicenseValuehttp://www.geoffchappell.com/studies/windows/km/ntoskrnl/api/ex/slmem/queryvalue.htm Saludos!