INFO: Working with the AppInit_DLLs Registry Value

ID: Q197571


The information in this article applies to:


SUMMARY

The AppInit_DLLs value is found in the following registry key:

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

All of the DLLs specified in this value are loaded by each Windows-based application running within the current logon session.


MORE INFORMATION

The AppInit DLLs are loaded via LoadLibrary() during the DLL_PROCESS_ATTACH of User32.dll. As a result, executables that don't link with User32.dll will not load the AppInit DLLs. There are very few executables that don't link with User32.dll.

Because of their early loading, only API functions exported from Kernel32.dll are safe to use within the initialization of the AppInit DLLs.

The AppInit_DLLs value has type REG_SZ. This value should specify a NULL- terminated string of DLLs, which is delimited by spaces or commas. Because spaces are used as delimiters, no long file names should be used. The system does not recognize semicolons as delimiters for these DLLs.

Only the first 32 characters of the AppInit_DLLs value are picked up by the system. Because of this 32-character limit, all of the AppInit DLLs should be located within the SYSTEM32 directory. This eliminates the need to include a path, thus allowing multiple DLLs to be specified.

Normally, only the Administrators group and the LocalSystem account have write access to the key containing the AppInit_DLLs value.

Additional query words:


Keywords          : kbDLL kbKernBase kbNTOS350 kbNTOS351 kbNTOS400 kbWinOS2000 kbRegistry 
Version           : winnt:3.50,3.51,4.0,5.0
Platform          : winnt 
Issue type        : kbinfo 

Last Reviewed: January 25, 1999