http://bugs.winehq.org/show_bug.cgi?id=22766
Summary: Hardcoded "C:\windows\system32" paths autorun paths fail in a syswow64 build Product: Wine Version: 1.1.44 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: stefandoesinger@gmx.at
The DirectX 7 SDK puts a file "dxdllreg.exe" into C:\windows\system32 and creates a registry key to run it on the next boot. On a pure 32 bit Wine this works OK, in a syswow64 build wineboot complains that the file cannot be found. It seems that the following happens:
1) The installer places the file in system32\dxdllreg.exe. Since it is a 32 bit app this is redirected to syswow64/dxdllreg.exe
2) The installer writes "C:\windows\system32\dxdllreg.exe" into the registry
3) Wineboot runs, reads the string from the registry. However, wineboot is a 64 bit app, so it tries to find the file in system32\dxdllreg.exe
Running the 32 bit wineboot manually correctly executes the application.
http://bugs.winehq.org/show_bug.cgi?id=22766
Stefan Dösinger stefandoesinger@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Hardcoded |Hardcoded |"C:\windows\system32" paths |"C:\windows\system32" |autorun paths fail in a |autorun paths fail in a |syswow64 build |syswow64 build
http://bugs.winehq.org/show_bug.cgi?id=22766
--- Comment #1 from Stefan Dösinger stefandoesinger@gmx.at 2010-05-19 06:27:33 --- Sorry, I was wrong about a detail: This doesn't happen with the old DX7 SDK, but with modern DirectX redistributable installers. This installer is still a 32 bit application, but it is aware of 64 bit Systems and installs 64 bit DLLs into system32 and 32 bit ones into syswow64(This works just fine on Wine).
Here is what happens on the next boot: /home/stefan/build/wine/wine winecfg wine: cannot find L"C:\windows\system32\dxdllreg.exe"
The registry keys mentioning dxdllreg.exe are [Software\Wow6432Node\Microsoft\DirectX] 1274268191 @="" "Debug"="0" "DXDllRegExe"="C:\windows\system32\dxdllreg.exe " "InstalledVersion"=hex:00,00,00,09,00,00,00,00 "RC"="0" "Version"="4.09.00.0904"
[System\CurrentControlSet\Services\dxregsvc] 1274268187 "DisplayName"="DirectX DLL register" "ErrorControl"=dword:00000000 "ImagePath"="C:\windows\system32\dxdllreg.exe -SERVICE" "ObjectName"="LocalSystem" "Start"=dword:00000002 "Type"=dword:00000010
(Sounds like a service rather than a classic autorun app)
http://bugs.winehq.org/show_bug.cgi?id=22766
Stefan Dösinger stefandoesinger@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.microsoft.com/do | |wnloads/details.aspx?family | |id=0CEF8180-E94A-4F56-B157- | |5AB8109CB4F5&displaylang=en
http://bugs.winehq.org/show_bug.cgi?id=22766
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |win64
--- Comment #2 from Austin English austinenglish@gmail.com 2010-05-19 13:00:46 --- Have you tested this on 64-bit windows?
http://bugs.winehq.org/show_bug.cgi?id=22766
--- Comment #3 from Stefan Dösinger stefandoesinger@gmx.at 2010-05-19 15:55:28 --- Honestly no, but I expect Microsoft's own directx redistributable installer to work on a 64 bit Windows. I have a 64 bit Windows 7 and can test this if you're looking for specific details besides "does it work?"
http://bugs.winehq.org/show_bug.cgi?id=22766
--- Comment #4 from Austin English austinenglish@gmail.com 2010-05-19 16:15:47 --- I just wanted to see if it worked on windows, sometimes Microsoft will surprise you...
http://bugs.winehq.org/show_bug.cgi?id=22766
--- Comment #5 from Stefan Dösinger stefandoesinger@gmx.at 2010-05-19 17:17:41 --- I think you've got a point here
The dxdllreg service is only registered when installing the dx runtime with winver=win2k, which also installs old libs like directplay and directmusic which already ship with Windows XP. However, as far as I know there wasn't a AMD64 build of Windows 2000. So that means I'm running the installer in a mode it wasn't intended for.
When using winver = winxp(Installs newer stuff like XAudio, xinput, ...) there is no dxdllreg service registered. I also cannot find this service on my 64 bit Windows 7 box.
(Note that apparently you have to run the installer with winver=win2k once before installing it in XP mode, otherwise it complains about missing registry keys - most likely keys from the DirectX Windows XP ships with)
I guess we can close this as invalid then.
http://bugs.winehq.org/show_bug.cgi?id=22766
Stefan Dösinger stefandoesinger@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID
--- Comment #6 from Stefan Dösinger stefandoesinger@gmx.at 2010-05-19 17:18:51 --- Invalid, apparently a user error on my side.
http://bugs.winehq.org/show_bug.cgi?id=22766
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Austin English austinenglish@gmail.com 2010-05-19 17:35:03 --- Closing.