How can I try to escape the disease-ridden hot-tubs known as the TEMP and Downloads directories?

Raymond Chen

Some time ago, I described the TEMP directory as a hot tub whose water hasn’t been changed in over a year. The Downloads folder is in a similar situation: There’s all sorts of unrelated junk in there, some of which may not be very friendly to your health.

Starting in Windows 10 Version 1607,¹ you can set attributes on your executable to tell the system how to look for the DLLs to which your executable links statically.² To do this, pass the /DEPENDENTLOADFLAG:nnnn command line option to the linker, where nnnn is a value corresponding to some combination of the LOAD_LIBRARY_SEARCH_* values that can be passed to the Load­Library­Ex function.

By far the most useful value is LOAD_LIBRARY_SEARCH_SYSTEM32, which means “Look in the system32 directory and nowhere else.”

To do this, pass /DEPENDENTLOADFLAG:0x800.

Versions of Windows that do not support this option merely ignore it, so it’s okay to set this option unconditionally.

¹ Windows 10 Version 1607 goes by several other names: The Anniversary Update, Build 14393, and the RS1 release. It’s kind of silly, really.

² Note that the dependent load flag applies only to DLLs that are loaded as a consequence of resolving the module’s static imports. DLLs loaded dynamically via LoadLibrary or LoadLibraryEx follow the normal rules.