All the DLLs that are specified in this value are loaded by each Microsoft Windows-based application that is running in the current log on session.
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.dll do not load the AppInit DLLs. There are very few executables that do not link with User32.dll.
Because of their early loading, only API functions that are exported from Kernel32.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:
Typically, only the Administrators group and the LocalSystem account have write access to the key that contains the AppInit_DLLs value.