Windows 95 stores information about devices and device drivers in the branches of the HKEY_LOCAL_MACHINE key (sometimes abbreviated HLM). Initially, the system creates this information during system setup in response to detecting or enumerating a device. The setup utility copies information about the given device or a compatible device from a matching .INF file to the registry. The INF file provides the instructions needed to add resource requirements, driver-specific data, and switch settings to the appropriate branches of the registry.
The HLM\ENUM branch contains information about all the devices that are presently and were previously installed in the system. The system uses this branch during system startup to retrieve information about enumerated devices. If the system cannot find information about the device in this branch, it assumes that new hardware has been installed and automatically invokes the device installer to create the necessary entries and to install the drivers. Information remains in this branch, even if the corresponding device is removed, so that the necessary information is present if the device is reinstalled.
The HLM\CONFIG branch contains information about hardware profiles. A hardware profile is a set of information that defines the hardware present in the system. Hardware profiles are typically used in docking systems in which the number and type of devices may be different with each docking station. The typical docking system has one hardware profile for each docking station and one for when it is not docked.
The HLM\SYSTEM branch contains detailed information about the available devices and their current configuration. This includes information about each class of device as well as individual devices.
Unlike Windows NT, Windows 95 does not use the HLM\HARDWARE branch to store device information. Instead, Windows 95 leaves this branch empty.
Windows 95 uses the HLM\SOFTWARE branch to store information about applications and system components. It is recommend that all applications, including those that provide support for device drivers, use this branch to store version-specific information. Each application should store information under its own subkey. The subkey should have this general form: SOFTWARE\manufacturer\product\version.
Windows 95 also stores information in the branches of the HKEY_USERS key. While Windows 95 is not currently expected to be a true-multiuser system, this key and the associated key HKEY_CURRENT_USER key (sometimes abbreviated HCU) are available so that applications may take advantage of future enhancements. Currently, the HKEY_CURRENT_USER key maps to a single default user branch under HKEY_USERS, but eventually it will map to the user's login name, giving applications the ability to store user-specific profile information on a network server and letting users work at multiple workstations without requiring them to maintain multiple profiles. In general, applications should store user-specific information under HCU\SOFTWARE rather than under HLM\SOFTWARE.