Sunday, January 16, 2011

How to report less memory to 32 bit program so it will work on 64 bit Vista?

I have a legacy setup program that will not install on a 64 bit version of Vista with 4GB of RAM. The setup program performs a check at the beginning of the installation to see if there is enough memory. It determines there is "less than 256K of RAM." I assume this is because of a signed 32bit number being used in there math.

I imagine I could take some memory out of the computer and try it. I will as a last resort. But, I was hoping there may be some setting or command line option to get Vista to report less than 4GB to the setup.exe process.

Does anyone know of a way to do this?

  • Use BCDEdit to set truncatememory option. That will limit your memory.

    To use it first check what BCD entries you have with

    BCDEDIT /v
    

    Remember id of wanted entry and then use

    BCDEDIT /set "{id}" truncatememory 1073741824
    

    This will limit it to 1 GB.

    TomTom : Dont forget to undo that after install. This msut be the most ridiculous incompatibility eve.... I hope the software runs at all.
  • Another alternative is to run Windows in a virtual machine like Virtualbox. Then you can sandbox the application and run it with as much or as little memory as you'd like, as well as run with an older version of Windows if you have licensing available to do so (if it's a compatibility issue).

  • One of the available compatibility shims in Windows is "GlobalMemoryStatus2GB". This might be enough. Look in the Application Compatibility Toolkit.

0 comments:

Post a Comment