Access Violation (C0-C5) During Registry Backup or Save (103097)



The information in this article applies to:

  • Microsoft Windows NT Server 3.1
  • Microsoft Windows NT Workstation 3.1
  • Microsoft Windows NT Advanced Server 3.1

This article was previously published under Q103097
WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows NT to correct them. Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use this tool at your own risk.

SYMPTOMS

During a backup or save of the Registry or one of its hives, a STOP message appears. The error message states that an access violation occurred (C0- C5). If you perform a trace of the stack using Kernel Debugger, the Registry shows up.

CAUSE

The Registry has reached its capacity given its current Registry size limit (RSL) and other system configuration factors. The RSL represents the maximum size the Registry can reach and is 25 percent of the paging file, by default. Since the paging file, by default, is 32 MB, the default RSL is roughly 8 megabytes (MB). The default RSL is big enough to store approximately 5000 users in the security accounts manager (SAM) database. There is no guarantee that the amount of memory specified by the RSL will be available.

RESOLUTION

To avoid this problem, you must increase the RSL by either manually editing the Registry entry for the RSL or by increasing the size of the paging file. You can increase the size of the paging file by using Control Panel. To modify the RSL in the Registry, do the following:

  1. Start Registry Editor (REGEDT32.EXE) and go to the following subtree and subkey:
          HKEY_LOCAL_MACHINE, System\CurrentControlSet\Control
  2. Select the RegistrySizeLimit value and Choose Edit Value from the Edit menu. If the RegistrySizeLimit value is not present, enter it by choosing Add Value from the edit menu and use the following information:

    RegistrySizeLimit : REG_DWORD : <bytes>

  3. Enter the number of bytes for the RSL for the value of the RegistrySizeLimit value.
  4. Exit Registry Editor and shut down Windows NT.

Registry Size Limit Notes

The RSL is a maximum boundary, not an allocation. Setting a large RSL does not mean the system will use the specified amount of space unless the Registry requires it; similarly, it does not imply that the specified amount will be available.

If you set the RSL to a value less than 4 MB, it will round up to 4 MB. If it is greater than 80% of the paging file, it will be reduced to just 80% of the paging file.

Setting the RSL to 0xffffffff instructs Windows NT to use as much of the paging file as it can (80%). Since the paging file has a maximum size of 128 MB, the RSL can be no larger than about 102 MB which would support about 80,000 users in the SAM database.

The limitations imposed by the RSL are approximate.

Modification Type:MajorLast Reviewed:11/20/2003
Keywords:kbother KB103097