Registry Checker Continues to Detect Registry Damage

ID: Q186909


The information in this article applies to:


SYMPTOMS

When Windows starts, the Registry Checker tool may display the following message:

Windows registry is damaged. Windows will restart and try to fix the problem.

When you click OK, you may receive the same message when Windows restarts.

Note that running the real-mode version of Registry Checker (Scanreg.exe) at a command prompt does not detect registry damage.


CAUSE

This problem can occur if there is defective memory in your computer. A defective memory chip may damage the registry in memory. The Windows-based (or protected-mode) version of Registry Checker (Scanregw.exe) scans the registry in memory for damage.

When this issue occurs, Scanregw.exe detects that the registry is damaged in memory and marks the registry as damaged so that the real-mode Scanreg.exe is run the next time the computer starts. Scanreg.exe may not detect any damage if the defective memory is not used in real mode, and may allow Windows to start normally.


RESOLUTION

There are two methods you can use to identify whether defective memory chips are causing the problem:

Method 1

Remove or replace memory chips in the computer to see if the problem is resolved.

Method 2

Try limiting the amount of memory that Windows uses. If limiting the amount of memory that Windows uses resolves the issue, the problem is a defective memory chip. To limit the amount of memory Windows uses, follow these steps:
  1. Restart Windows in Safe mode. To do so, restart your computer, press and hold down the CTRL key until the Windows 98 Startup menu appears, and then choose Safe Mode.


  2. Click Start, point to Programs, point to Accessories, point to System Tools, and then click System Information.


  3. On the Tools menu, click System Configuration Utility.


  4. On the General tab, click Advanced.


  5. Click to select the Limit Memory To <n> MB check box, and set the value to 16 megabytes (MB).

    NOTE: Limiting memory to less than 16 MB may prevent Windows from loading. If you are unable to start Windows normally, start Windows in Safe mode and then disable this option by pressing and holding down the SHIFT key throughout startup.


  6. Click OK, and then click OK.


  7. Restart your computer normally.




For more information about troubleshooting memory, please see the following articles in the Microsoft Knowledge Base:
ARTICLE-ID: Q134503
TITLE : Parity Error Messages May Indicate Bad Memory

ARTICLE-ID: Q142546
TITLE : How to Use a RAM Drive to Troubleshoot Memory


STATUS

This behavior is by design.


MORE INFORMATION

You can disable Registry Checker so that it does not run automatically at startup. To disable Registry Checker, use the following steps.

WARNING: Microsoft does not recommend disabling Registry Checker. This tool automatically guards against problems that may render your computer unusable. The symptom described in this article may be indicative of a larger problem that should be identified and addressed.

  1. Restart Windows in Safe mode. To do so, restart your computer, press and hold down the CTRL key until the Windows 98 Startup menu appears, and then choose Safe Mode.


  2. Click Start, point to Programs, point to Accessories, point to System Tools, and then click System Information.


  3. On the Tools menu, click System Configuration Utility.


  4. Click the Startup tab.


  5. Click to clear the ScanRegistry check box.


  6. Click OK.


  7. Restart Windows normally.


Registry Checker consists of both a Windows-based (protected-mode) and MS-DOS-based (real-mode) version of the tool. The Windows-based version (Scanregw.exe) scans the registry for damage and empty data structures (keys marked as deleted), and backs up configuration files at startup once each day. If registry damage is detected, the tool sets a damage flag in the registry to invoke the real-mode tool, and you are prompted to restart the computer. If the registry contains more than 500 KB of empty data structures, the optimization flag is set in the registry and the real-mode tool is invoked the next time the computer starts to optimize the registry.

The real-mode tool (Scanreg.exe) is run at startup when the registry flag is set for either damage or optimization. If the damage flag is set, Scanreg.exe scans the registry for damage and then automatically restores the most recently saved backup set. The backup is extracted to a temporary file and scanned for damage before it replaces the current files. If the backup is damaged, the next most recent backup is restored. If no backups remain, Scanreg.exe attempts to fix the damage by rebuilding the registry without errors or empty data structures. If the optimization flag is set, the registry is compressed by removing all but a 4 KB placeholder for each empty data structure. The registry is not rebuilt when it is optimized; 4 KB remains to serve as a placeholder within the current registry.

For additional information about the Registry Checker tool, please see the following articles in the Microsoft Knowledge Base:
ARTICLE-ID: Q183887
TITLE : Description of the Windows Registry Checker Tool (Scanreg.exe)

ARTICLE-ID: Q183603
TITLE : How to Customize Registry Checker Tool Settings

ARTICLE-ID: Q184023
TITLE : Command-Line Switches for the Registry Checker Tool


Keywords          : kbhw kbtool win98 
Version           : WINDOWS:
Platform          : WINDOWS 
Issue type        : kbprb 

Last Reviewed: February 4, 1999