On Thu Sep 19 15:09:22 2024 +0000, Gabriel Ivăncescu wrote:
Yeah I agree, this fix seems like a band-aid. Most DLLs on Windows will get picked by the one near the .exe (except for KnownDLLs as mentioned). Even without KnownDLLs implemented, shouldn't prefer-native be the default then on every module, since only a certain "allow list" of DLLs are actually "KnownDLLs" (in our case, prefer-builtin)?
I actually dislike the idea of preferring native in a general way, and even initially didn't want to do it for dinput8. I think it is a dangerous game to play for us, as we must never look at Microsoft DLLs internals.
Then, for this specific case, I got convinced that the advantages defeat the drawbacks, because of how all these mods actually use their own dinput8 implementation for hooking. I'm not aware of many other instances of this happening, but if it happens, we should IMO only carefully enable prefer-native on a per-module basis, where we know it is safe or useful enough.