MORE INFORMATION
The total amount of memory that may be consumed by registry data (the
hives) is limited by the registry size limit (RSL). The RSL works as a
"global quota" for registry space, both in the paged pool and on disk.
By default, the RSL is 25 percent of the size of the paged pool (the paged
pool is the memory that may be swapped to disk; all user memory is part of
the paged pool). Changing the size of the paged pool also affects the size
of the RSL. See
HKEY_LOCAL_MACHINE\System\
CurrentControlSet\
Control\
SessionManager\
MemoryManagement\
PagedPoolSize
in the registry.
The RSL may also be manually set. The value in bytes may be specified
by setting the value entry for the key
HKEY_LOCAL_MACHINE\System\
CurrentControlSet\
Control\
RegistrySizeLimit.
This key must have a type of REG_DWORD and a data length of 4 bytes, or it
will be ignored.
If the value entry RegistrySizeLimit is less than 4 megabytes (MB), it will
be forced up to 4 MB. If it is greater than about 80 percent of the size of
the paged pool, it will be set down to 80 percent of the size of the paged
pool. (It is assumed that paged pool is always larger than 5 MB.)
The system must be rebooted for changes in the RSL to take effect.
To ensure that the user can always at least boot and edit the registry if
they somehow set the RSL wrong, the quota is not enforced until after the
first successful loading of a hive (that is, loading of a user profile.)
Note that the RSL sets a maximum, not an allocation (unlike some other such
limits in the system). Setting a large RSL does NOT cause the system to set
aside that much space unless it is actually needed by the registry. It also
does NOT guarantee that that much space will be available for use in the
registry.
Setting the value entry RegistrySizeLimit to 0xffffffff effectively sets
RSL to be as large as paged pool allows (80 percent of paged pool size).
In the initial release of Windows NT, the paged pool defaults to 32 MB, so
the default RSL is 8 MB. The paged pool can be set to a maximum of 128 MB, so the RSL can be no larger than about 102 MB.
In Windows NT version 4.0, and Windows NT 4.0, Terminal Server Edition, the maximum Paged Pool size is 192 MB, so RSL can be a maximum of 153.6 MB.
In Windows 2000, the maximum paged pool is approximately 300-470 MB, when NOT using the /3GB switch. This would make RSL >296 MB. If the /3GB switch is used, these values remain unchanged from Windows NT 4.0.
REFERENCES
For additional information, see the following article or articles in the
Microsoft Knowledge Base:
124594 Understanding and Configuring Registry Size Limit (RSL
140364 Registry Size Limit Change Results in Pagedpoolsize Change