PRB: Setup - 64K Register Key Limitation Under Windows 95

ID: Q201546


The information in this article applies to:
  • Microsoft Visual Studio 6.0
  • Microsoft Visual SourceSafe, 32-bit, for Windows 6.0
  • Microsoft Visual J++, version 6.0
  • Microsoft Visual InterDev, version 6.0
  • Microsoft Visual FoxPro for Windows, version 6.0
  • Microsoft Visual C++, 32-bit Professional Edition, version 6.0
  • Microsoft Visual Basic Learning, Professional, and Enterprise Editions for Windows, version 6.0


SYMPTOMS

When you install Visual Studio 6.0 or any of the Visual Studio 6.0 stand-alone products, you might receive the following warning:

Setup has detected that your system may not have enough registry database space available for a full installation. It is recommended that you read the Readme topic 'Windows 95 Registry Size' in Install.htm before continuing.
This warning appears before the first wizard screen appears.

If you receive this warning and you ignore it, you might experience unpredictable behavior during Setup and when you run the products you installed.

Near the end of Setup, several DLLs are registered using REGSVR32. You might see errors like the following:
Cannot load XXX.DLL
The text of this error does not indicate what the effect of this error is or why the DLL could not be loaded.


CAUSE

There is a known 64K limitation on the size of registry keys in Windows 95.


RESOLUTION

In the Install.htm readme file included with the products listed at the beginning of this article, there is an entry that addresses this issue. Please see the following section of the Install.htm:

Windows 95 Registry Size: 64 KB Limitation May Cause A Warning During Visual Studio Installation
In addtion, the MORE INFORMATION section of this article contains information that is not available in the Install.htm readme file. In particular, it describes a tool to help you clean the SharedDLLs registry key and also describes platform limitations and product sizes.

IMPORTANT: If you are not absolutely certain of the requirements you need, it is safest to install only if you do not receive the initial 64k Warning during Setup.

NOTE: It is often assumed that RegClean will clean up entries throughout the registry including the ShareDLLs key. This is not true. As of this writing, RegClean does not affect anything in the registry under HKEY_LOCAL_MACHINE. It only cleans up entries in HKEY_CLASSES_ROOT. For additional information about RegClean, please see the following article in the Microsoft Knowledge Base:
Q147769 INFO: RegClean 4.1a Description and General Issues


STATUS

This behavior is by design.


MORE INFORMATION

The main area of contention is the following registry key:


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDlls 
When you install Visual Studio 6.0, the Setup program checks to make sure that there is enough room in the registry to install all of Visual Studio (that is, Visual C++, Visual Basic, Visual InterDev, Visual J++, Visual FoxPro, and Visual SourceSafe). It is not possible to check for registry usage after you have made your selections. As a result, Setup often overestimates by checking for the maximum possible space required. For example, Visual Studio setup checks to see if you have 29000 bytes available.

Below is a list of the space requirements for each of the Visual Studio components. Note that there is some overlap between components. There is no formula to tell you what is required to install two or three components.

Note that even though the Professional and Learning editions typically take up less space than Enterprise editions, the required size does not differ between editions.

Product Name Size Test
Microsoft Visual Studio 6.0 29000
Microsoft Visual Basic 6.0 8900
Microsoft Visual C++ 6.0 18900
Microsoft Visual J++ 6.0 12100
Microsoft Visual InterDev 6.0 11210
Microsoft Visual FoxPro 6.0 3210
Microsoft Visual SourceSafe 6.0 200

SharedDlls Registry Space Tool

ShareDLL.exe is a self-extracting executable that contains ShrDLL.exe. This tool can tell you how much space is in use and can also clean up some spurious entries that take up space in the SharedDLLs registry key.

NOTE: This tool has not been formally tested. Microsoft does not support Shrdll.exe.

For additional information on how to obtain and use ShrDLL, please see the following article in the Microsoft Knowledge Base:
Q217165 Check the size of the SharedDLLs registry key using ShrDLL.exe

Registry and the Platform

Depending on the platform, checks are performed at the beginning of Setup to ensure that the registry does not overflow. There are two aspects of the registry that can affect Setup in this regard:
  • The total space available for entering new keys and values. If there is not enough space available, Setup might need to increase the registry size.
  • The size of individual registry keys.
See the following for a short comparison of registry support from the different platforms:

Windows NT 4.0:

There is no limitation on the size of individual registry keys, but Windows NT 4.0 cannot dynamically increase the overall size of the registry. If the registry needs to increase, a warning appears and you have to restart your computer.

Windows 98:

There are no known issues. There is no 64K registry key limitation and Windows 98 does not require you to restart to increase the size of the registry.

Windows 95:

No individual registry key can be larger than 64K. Windows 95 can dynamically increase the registry without restarting.

Additional query words: HKLM HKCU

Keywords : kbsetup kbSSafe600 kbVBp600 kbVC600 kbVFp600 kbVisID600 kbVJ600 kbVS600
Version : WINDOWS:6.0; winnt:6.0
Platform : WINDOWS winnt
Issue type : kbprb


Last Reviewed: July 13, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.