ntdll load_dll broken WoW behavior

Patrick Rudolph siro at das-labor.org
Fri Feb 6 05:53:08 CST 2015

Am 2015-02-06 12:07, schrieb Nikolay Sivov:
> On 06.02.2015 14:02, Patrick Rudolph wrote:
>> Am 2015-02-06 09:22, schrieb Nikolay Sivov:
>>> On 06.02.2015 11:12, Patrick Rudolph wrote:
>>>> Hi guys,
>>>> I tried WoW as it seems to be in a good shape, but run into same 
>>>> issues.
>>>> I hope you can clarify.
>>>> I've got an game that has two executables, 32bit and 64bit. It 
>>>> places a
>>>> 32bit version of xinput1_3.dll in the same folder on startup.
>>>> Trying to start the 32bit version works fine, however starting the 
>>>> 64bit
>>>> version doesn't work.
>>>> For me it looks like the ntdll load_dll is the fault.
>>>> It searches for builtin xinput1_3 and finds the 32bit dll in the 
>>>> game
>>>> folder. It fails to open it (wrong ARCH) and that's it.
>>>> Instead of trying other directories it tries to load native.
>>>> Again it opens the first file found in the given path, it's the same
>>>> file again, it fails to open it and the application terminates.
>>>> Why doesn't it check for correct ARCH ?
>>>> Why doesn't it walk all directories / all path given, instead of 
>>>> just
>>>> using the first file found ?
>>> What do you mean by that? It doesn't check usual System32 dir for 64
>>> bit dll, is that what you expect?
>> Why doesn't it check for files in syswow64 ?
> Because syswow64 is a directory for 32bit system dlls/exes. So for
> 64bit process it doesn't make much sense to look for dependencies
> there.
So system32 contains 64bit libraries and syswow64 32bit libraries... OK. 
then why doesn't it look into system32 for the correct dll ?
>>>> Does Windows 64bits behave the same ?
>>> Does this game work in Windows with same conditions? Or any minimal
>>> test case for that matter, like 64bit exe + 32bit dll with 
>>> appropriate
>>> name, is that what you see?
>> I guess it is working, why should a vendor release a non functional 
>> game ?
>> But I cannot test it, as I do not own a Windows.
> Maybe you just need 64bit version of xinput then?
I can't place it in the same folder as there's already a 32bit version.
Why doesn't it take the 64bit version in system32.
>>>> Regards

More information about the wine-devel mailing list