If you install Windows NT as an upgrade over Windows 3.1, all the settings from various initialization files are copied into the Registry, including CONTROL.INI, PROGMAN.INI, SYSTEM.INI, WIN.INI, WINFILE.INI, and others. You can see where the Windows initialization files are mapped in the Registry by viewing the subkeys and value entries under this path:
HKEY_Local_Machine\SOFTWARE\Microsoft
\Windows NT\CurrentVersion\IniFileMapping
When you install an application created for 16-bit Microsoft Windows, the application's setup program creates its own .INI file or creates entries for the WIN.INI or SYSTEM.INI file in the same way that it does for any versions of Windows for MS-DOS. These entries are not updated in the Registry, because these applications do not know how to access the Windows NT Registry. For this reason, basic SYSTEM.INI, WIN.INI, and WINFILE.INI files appear in the SystemRoot directory in Windows NT.
If a Windows-based application tries to write to WIN.INI, SYSTEM.INI, or any other section listed in the IniFileMapping key, and if the application uses the Windows NT Registry APIs, the information is stored in the Registry. If the application writes to other sections of the .INI file or tries to open the .INI file directly without using the Windows NT Registry APIs, the information is saved in an .INI file.
To find mapping information in the HKEY_LOCAL_MACHINE\Software key, the system looks up the filename.ext of the initialization file. If a match is found, it looks under the mapped key for the specific application name and a variable name, and if necessary it continues to look for keys whose value entries are the variable names. If no mapping for either the application name or filename is found, the system looks for an .INI file to read and write its contents.
Tables 13.1 through 13.3 show where system settings are saved in the Registry in comparison to initialization files used with Windows 3.1 for MS-DOS.
In the entries in the IniFileMapping key and in Tables 13.1 through 13.3, the following symbols are used:
Symbol | Description |
! | Forces all writes to go to both the Registry and to the .INI file on disk. |
# | Causes the Registry value to be set to the value in the Windows 3.1 .INI file whenever a new user logs in for the first time after Setup, if Windows NT was installed on a computer that had Windows 3.1 already installed. |
@ | Prevents any reads from going to the .INI file on disk if the requested data is not found in the Registry. |
USR | Stands for HKEY_CURRENT_USER, and the text after the prefix is relative to that key. |
SYS | Stands for HKEY_LOCAL_MACHINE\Software, and the text after the prefix is relative to that key. |