Microsoft KB Archive/104136

From BetaArchive Wiki

HOWTO: Map.ini File Entries to the Registry

Q104136



The information in this article applies to:


  • Microsoft Win32 Software Development Kit (SDK), used with:
    • the operating system: Microsoft Windows NT, versions 3.1, 3.5, 3.51, 4.0, 5.0
    • the operating system: Microsoft Windows 2000





SUMMARY

Under Windows NT, .ini file variables are mapped into the Registry as defined in the

   \HKEY_LOCAL_MACHINE
      \Software\Microsoft\WindowsNT\CurrentVersion\IniFileMapping 

mapping key. The Win32 Profile application programming interface (API) functions look for a mapping by looking up the filename extension portion of the profile file. If a match is found, then the search continues under that node for the specified application name. If a match is found, then the search continues for the variable name. If the variable name is not found, the value of the (NULL) variable name is a string that points to a node in the Registry, whose value keys are the variable names. If a specific mapping is found for the variable name, then its value points to the Registry value that contains the variable value.



MORE INFORMATION

The Profile API calls go to the Windows server to look for an actual .INI file, and read and write its contents, only if no mapping for either the application name or filename is found. If there is a mapping for the filename but not the application name, and there is a (NULL) application name, the value of the (NULL) variable will be used as the location in the Registry of the variable, after appending the application name to it.

In the string that points to a Registry node, there are several prefixes that change the behavior of the .INI file mapping:

   ! - This character forces all writes to go both to the Registry and
       to the .INI file on disk.

   # - This character causes the Registry value to be set to the value
       in the Windows 3.1 .INI file when a new user logs in for the
       first time after setup.

   @ - This character prevents any reads from going to the .INI file
       on disk if the requested data is not found in the Registry.

   USR: - This prefix stands for HKEY_CURRENT_USER, and the text after
          the prefix is relative to that key.

   SYS: - This prefix stands for HKEY_LOCAL_MACHINE\Software, and the
          text after the prefix is relative to that key. 

Additional query words: inifilemapping

Keywords : kbKernBase kbOSWinNT kbOSWin2000 kbRegistry kbSysSettings kbGrpDSUser kbDSupport kbGrpDSKernBase
Issue type : kbhowto
Technology : kbWin32SDKSearch kbAudDeveloper kbSDKSearch kbWin32sSearch


Last Reviewed: October 27, 2000
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.