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
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:
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. Because
spaces are used as delimiters, do not use long file names. The
system does not recognize semicolons as delimiters for these DLLs.
Typically, only the Administrators group and the LocalSystem account have
write access to the key that contains the AppInit_DLLs value.