Use of Memory Configurations Greater than 512MB in Windows 95, 98 and Windows Millennium Edition
There have been numerous questions that have arisen since the release of Windows 95 regarding memory limitations in Windows 9x. These questions resurface with each subsequent release, and cover Windows 95 OSR2, Windows 98, Windows 98SE and the Windows Millennium Edition. Windows 9x does have a memory limitation, however if your needs require in excess of 512MB of physical memory, there are methods you can use to overcome this limitation.
The information in this document is supported by the following articles that can be found in the Microsoft® Product Support Services Technical Knowledge Base:
Out of Memory Error Messages with Large Amounts of RAM Installed
Some symptoms to help you identify if your are experiencing this problem
If a computer that is running any of the versions of Windows listed above contains more than 512 megabytes (for example, 768 megabytes) of physical memory (RAM) installed, you may experience one or more of the following symptoms:
- You may be unable to open an MS-DOS session (command prompt) while Windows is running. Attempts to do so may generate the following error message:
There is not enough memory available to run this program.
Quit one or more programs, and then try again.
- The computer may stop responding or hang while Windows is starting, or halt and display the following error message:
Insufficient memory to initialize windows. Quit one or more memory-resident programs or remove unnecessary utilities from your Config.sys and Autoexec.bat files, and restart your computer.
The Cause The Windows 32-bit protected-mode cache driver (Vcache) determines the maximum cache size based on the amount of RAM that is present when Windows starts. Vcache then reserves enough memory addresses to permit it to access a cache of the maximum size so that it can increase the cache to that size if needed. These addresses are allocated in a range of virtual addresses from 0xC0000000 through 0xFFFFFFFF (3 to 4 gigabytes) known as the system arena. In Computers having large amounts of physical RAM memory, the maximum cache size can be large enough that Vcache consumes all of the addresses in the system arena, leaving no virtual memory addresses available for other functions such as opening an MS-DOS prompt (creating a new virtual machine).
Try one of the following methods:
- Use the MaxFileCache setting in the System.ini file to reduce the maximum amount of memory that Vcache uses to 512 megabytes (524,288 KB) or less. We recommend that you remove all but 512MB of memory from your computer and then start it normally. Change the Vcache settings as necessary, shut down, and then reinstall your remaining RAM memory. For additional information about how to use the MaxFileCache setting, click the article number below to view the article in the Microsoft Knowledge Base:
32-Bit File Access Maximum Cache Size
- Use the System Configuration utility to limit the amount of memory that Windows uses to 512 megabytes (MB) or less. We recommend that you remove all but 512MB of memory from your computer and then start it normally. Adjust your settings as necessary, shut down, and then reinstall your remaining RAM memory. For additional information about how to use the System Configuration utility, click the article number below to view the article in the Microsoft Knowledge Base:
System Configuration Utility Advanced Troubleshooting Settings
- Reduce the amount of memory that is installed in your computer to 512 MB or less.
Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article.
Vcache is limited internally to a maximum cache size of 800 MB.
This problem may occur more readily with Advanced Graphics Port (AGP) video adapters because the AGP aperture is also mapped to addresses in the system arena. For example, if Vcache is using a maximum cache size of 800 MB and an AGP video adapter has a 128-MB aperture mapped, there is very little address space remaining for the other system code and data that must occupy this range of virtual addresses.
This page updated: 11/01/2000