Working with the AppInit_DLLs registry value

This article was previously published under Q197571
The AppInit_DLLs value is found in the following registry key:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows

All the DLLs that are specified in this value are loaded by each Microsoft Windows-basedapplication that is running in the current log on session.
Note This feature may not be available in future versions of the Windows operating system.

The AppInit DLLs are loaded by using the LoadLibrary() function during the DLL_PROCESS_ATTACH process of User32.dll. Therefore, executables that do not link with User32.dlldo not load the AppInit DLLs. There are very few executables that do notlink with User32.dll.

Because of their early loading, only API functions that are exported fromKernel32.dll are safe to use in the initialization of the AppInit DLLs.

We do not recommend that applications use this feature or rely on this feature. There are other techniques that can be used to achieve similar results. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
134655 AppInit_DLLs registry value and Windows 95
The AppInit_DLLs value has type "REG_SZ." This value has to specify a NULL-terminated string of DLLs that is delimited by spaces or by commas. Becausespaces are used as delimiters, do not use long file names. Thesystem does not recognize semicolons as delimiters for these DLLs.

Typically, only the Administrators group and the LocalSystem account havewrite access to the key that contains the AppInit_DLLs value.

Article ID: 197571 - Last Review: 11/21/2006 15:45:00 - Revision: 4.1

Microsoft Win32 Application Programming Interface

  • kbinfo kbregistry kbdll kbkernbase KB197571