[Bug 36059] New: Multiple Steam games fail to install DirectX runtime prerequisite, resulting in repeated install attempt on startup ('xinput1_3.dll' locked by client)

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Apr 22 15:48:29 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=36059

            Bug ID: 36059
           Summary: Multiple Steam games fail to install DirectX runtime
                    prerequisite, resulting in repeated install attempt on
                    startup ('xinput1_3.dll' locked by client)
           Product: Wine
           Version: 1.7.17
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: -unknown
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net

Hello folks,

splitting this issue off from various Steam related bug reports for reference.

Many Steam games require DirectX runtime, usually stated in game folder
'installscript.vdf'.

Example VDF:

--- snip ---
"Run Process"
{
...
  "directx"
  {
    "hasrunkey"    "HKEY_LOCAL_MACHINE\\Software\\Valve\\Steam\\Apps\\110800"
    "process 1"    "%INSTALLDIR%\\3rd\\DXSETUP.exe"
    "command 1"    "/silent"
  }
...
}
--- snip ---

For various games the DirectX runtime install fails, resulting in repeated
install attempt on startup of the game.

To illustrate how common this problem is, just a small list of some games I
installed for tests:

NOTE: non-zero 'Exit Code' indicates the installer failed

'installscript_log.txt' from 'c:\\Program Files\\Steam\\logs' folder

--- snip ---
...
04/15/14 00:08:33 [AppID 50280] Exit Code (-9) :  "C:\Program
Files\Steam\steamapps\common\Mafia II - Public Demo\3rd\DirectX\DXSETUP.exe"
/silent GLE 0
...
04/17/14 10:58:48 [AppID 17470] Exit Code (-9) :  "C:\Program
Files\Steam\steamapps\common\Dead Space\installers\DirectX\DXSETUP.exe" /silent
GLE 0
...
04/17/14 19:55:11 [AppID 55230] Exit Code (-9) :  "C:\Program
Files\Steam\steamapps\common\Saints Row the Third\DirectX\DXSetup.exe" /silent
GLE 0
04/17/14 21:36:35 [AppID 72850] Exit Code (-9) :  "C:\Program
Files\Steam\steamapps\common\Skyrim\DirectX10\DXSETUP.exe" /silent GLE 0
...
04/22/14 17:28:29 [AppID 49520] Exit Code (-9) :  "C:\Program
Files\Steam\steamapps\common\Borderlands
2\Binaries\Redist\DXRedistCutdown\DXSETUP.exe" /silent GLE 0
...
04/22/14 22:18:15 [AppID 34330] Exit Code (-9) :  "C:\Program
Files\Steam\steamapps\common\Total War SHOGUN 2\redist\DirectX\DXSETUP.exe"
/silent GLE 0
--- snip ---

The DirectX runtime installer can't overwrite a dll that is locked by the Steam
client/launcher in memory.

You can check 'c:\\windows\\logs\\DirectX.log'.

--- snip ---
...
04/17/14 11:03:38: dxupdate: DirectXUpdateGetSetupInformation(): Section
[4.09.00.0904.0-4.09.00.0904.0_WinXP] is being installed.
04/17/14 11:03:38: dxupdate: Extracted file
C:\windows\system32\DirectX\DX7536.tmp\xinput1_3_x86.cat from cab
04/17/14 11:03:38: dxupdate: Extracted file
C:\windows\system32\DirectX\DX7536.tmp\xinput1_3.dll from cab
04/17/14 11:03:38: dxupdate: Extracted file
C:\windows\system32\DirectX\DX7536.tmp\xinput1_3_x86.inf from cab
04/17/14 11:03:38: dxupdate: Extracted file
C:\windows\system32\DirectX\DX7536.tmp\xinput1_3_x86_xp.inf from cab
04/17/14 11:03:38: dxupdate: Files:    5
04/17/14 11:03:38: dxupdate: Size:    498688
04/17/14 11:03:38: dxupdate: DirectXUpdateInstallPlugIn(): Installing:
xinput1_3_x86_xp.inf - [x86_Install]
04/17/14 11:03:38: dxupdate: Target file: 'C:\windows\system32\xinput1_3.dll' 
    Target file is Version 9.18.944.0
    Source file is Version 9.18.944.0
04/17/14 11:03:38: dxupdate: InUse: C:\windows\system32\xinput1_3.dll.
04/17/14 11:03:38: dxupdate: CabCallback(): Unable to copy
C:\windows\system32\DirectX\DX7536.tmp\xinput1_3.dll.
04/17/14 11:03:38: dxupdate: ExecuteInf(): SetupInstallFromInfSection() failed,
error = 183.
04/17/14 11:03:38: dxupdate: ExecuteInf(): Unable to install
C:\windows\system32\DirectX\DX7536.tmp\xinput1_3_x86_xp.inf:[x86_Install]. The
file may be damaged.
04/17/14 11:03:38: dxupdate: DirectXUpdateInstallPlugIn(): ExecuteInf() failed.
04/17/14 11:03:38: dsetup32: CSetup::InstallPlugIn():
DirectXUpdateInstallPlugIn() failed.
04/17/14 11:03:38: dsetup32: CSetup::SetupForDirectX(): InstallPlugIn() failed.
04/17/14 11:03:38: dsetup32: start finalizing: phase: 5 - 5, total: 0 - 2
04/17/14 11:03:38: dsetup32: Installation ended with value -9 = Internal or
unsupported error
--- snip ---

In many cases it's 'xinput1_3.dll'.
This kind of error is also encountered on Windows (lots of reports).
A reboot in between starts will fix it because the locked dll will be replaced
on next Windows startup.

There are multiple ways to handle this problem (apart from adding support for
SP_COPY_IN_USE_NEEDS_REBOOT to Wine itself):

1) install DX runtime without starting Steam in the Steam WINEPREFIX (make sure
you don't auto-run Steam services)

-> app folder -> 'installers' -> 'DirectX'

--- snip ---
$ wine DXSETUP.exe /silent
--- snip ---

2) remove the dll from 'system32' folder (or 'SysWOW64' on 64-bit prefix) prior
running Steam in the prefix

3) fake successful installation by adding registry key (see '17470_install.vdf'
where the registry key is located -> 'DirectX' DWORD:1)

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list