Registry Hive Fragmentation Leads to Excessive Size

This article was previously published under Q197632
This article has been archived. It is offered "as is" and will no longer be updated.
Processes that use the registry to repeatedly modify the same values insmall increments can cause excessive memory fragmentation in thecorresponding registry hive. The sum of the fragmented cells can become solarge that the hive size winds up many times larger than the sum of actualdata in the hive. Eventually, the sum of the hive will exceed the RegistrySize Limit (RSL), causing subsequent modifications to fail until the RSL isincreased. As an example consider the SAM hive used to store Windows NTaccounts. The SAM size frequently exceeds projected sizes due to the factthat it fragments the SAM hive when adding members to large groups.
In the SAM example, when a user is added to a large group it causes theregistry value for that group to be replaced and the old value added to ahash of free lists by size of allocation. The freed cell is coalesced withthe nearest neighbor cell in memory, if it's a free cell, to create aslightly larger cell to add to the free lists. Over several additions, thefree lists can contain several cells that are never used because they'retoo small. Over time the sum of the free cells become so large that the sumof the hives exceeds RSL.
To resolve this problem, obtain the latest service pack for Windows NT 4.0 or the individual software update. For information on obtaining the latest service pack, please go to:
  • 152734 how to obtain the latest windows nt 4.0 service pack
For information on obtaining the individual software update, contact Microsoft Product Support Services. For a complete list of Microsoft Product Support Services phone numbers and information on support costs, please go to the following address on the World Wide Web:
Microsoft has confirmed this to be a problem in Windows NT version 4.0. This problem was first corrected in Windows NT version 4.0 Service Pack 5.

Article ID: 197632 - Last Review: 11/02/2013 18:10:00 - Revision: 4.0

  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Server 4.0 Enterprise Edition
  • kbnosurvey kbarchive kbhotfixserver kbqfe kbbug kbfix KB197632