http://bugs.winehq.org/show_bug.cgi?id=34408
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |RESOLVED URL| |http://store.steampowered.c | |om/app/97100/ CC| |focht@gmx.net Component|-unknown |kernel32 Resolution|--- |DUPLICATE Summary|STEAM Section 8 Prejudice |Section 8 Prejudice (Steam) |won't start on wine 1.6 |fails on startup, complains | |with: "Please use the | |launcher" (failure to set | |named pipe to message mode | |via | |SetNamedPipeHandleState)
--- Comment #18 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
Actually a dupe of bug 17273 (SetNamedPipeHandleState being a stub) and bug 17195 (place where the current patches for needed pipe message mode support live).
Parent-child relationship of processes:
--- snip --- Wine-dbg>info process pid threads executable (all id:s are in hex) ... 00000008 41 'steam.exe' 0000005a 1 _ 'S9.exe' 00000031 3 _ 'S9-Win32-F.exe' --- snip ---
'S9.exe' (launcher) and 'S9-Win32-F.exe' communicate via named pipes.
Relevant part of trace log:
--- snip --- $ pwd /home/focht/wine-apps/steam/wineprefix/drive_c/Program Files/Steam
$ WINEDEBUG=+tid,+seh,+relay wine ./steam.exe -applaunch 97100 >>log.txt 2>&1 ... 005e:Call KERNEL32.CreateToolhelp32Snapshot(00000002,00000000) ret=0170c308 005e:Ret KERNEL32.CreateToolhelp32Snapshot() retval=00000214 ret=0170c308 005e:Call KERNEL32.Process32FirstW(00000214,02faecc0) ret=0170c356 005e:Ret KERNEL32.Process32FirstW() retval=00000001 ret=0170c356 005e:Call KERNEL32.Process32NextW(00000214,02faecc0) ret=0170c392 005e:Ret KERNEL32.Process32NextW() retval=00000001 ret=0170c392 ... 005e:Call KERNEL32.Process32NextW(00000214,02faecc0) ret=0170c392 005e:Ret KERNEL32.Process32NextW() retval=00000001 ret=0170c392 005e:Call KERNEL32.OpenProcess(00000400,00000000,00000059) ret=0170c3a8 005e:Ret KERNEL32.OpenProcess() retval=00000218 ret=0170c3a8 005e:Call KERNEL32.GetProcessTimes(00000218,02faec9c,02faec94,02faecac,02faec8c) ret=0170c3fa 005e:Ret KERNEL32.GetProcessTimes() retval=00000001 ret=0170c3fa 005e:Call KERNEL32.GetProcessTimes(ffffffff,02faeca4,02faec94,02faecac,02faec8c) ret=0170c426 005e:Ret KERNEL32.GetProcessTimes() retval=00000001 ret=0170c426 005e:Call KERNEL32.CompareFileTime(02faec9c,02faeca4) ret=0170c440 005e:Ret KERNEL32.CompareFileTime() retval=ffffffff ret=0170c440 005e:Call KERNEL32.CloseHandle(00000218) ret=0170c46e 005e:Ret KERNEL32.CloseHandle() retval=00000001 ret=0170c46e 005e:Call KERNEL32.CloseHandle(00000214) ret=0170c47a 005e:Ret KERNEL32.CloseHandle() retval=00000001 ret=0170c47a 005e:Call msvcrt._vsnwprintf(02faef74,00000011,020eb3a0 L"\\.\pipe\%08x",02faeef8) ret=0170c4c5 005e:Ret msvcrt._vsnwprintf() retval=00000011 ret=0170c4c5 005e:Call KERNEL32.CreateFileW(02faef74 L"\\.\pipe\00000059",c0000000,00000000,00000000,00000003,40000000,00000000) ret=0170c82d 005e:Ret KERNEL32.CreateFileW() retval=00000214 ret=0170c82d 005e:Call KERNEL32.SetNamedPipeHandleState(00000214,02faef6c,00000000,00000000) ret=0170c852 005e:Ret KERNEL32.SetNamedPipeHandleState() retval=00000000 ret=0170c852 005e:Call KERNEL32.GetLastError() ret=0170c75b 005e:Ret KERNEL32.GetLastError() retval=00000000 ret=0170c75b 005e:Call KERNEL32.CloseHandle(00000214) ret=0170c8ab 005e:Ret KERNEL32.CloseHandle() retval=00000001 ret=0170c8ab 005e:Call advapi32.CryptReleaseContext(085ac818,00000000) ret=0170d003 005e:Call rsaenh.CPReleaseContext(00000007,00000000) ret=7eb16ea2 005e:Call ntdll.RtlFreeHeap(00110000,00000000,085ae218) ret=f73330d1 005e:Ret ntdll.RtlFreeHeap() retval=00000001 ret=f73330d1 005e:Ret rsaenh.CPReleaseContext() retval=00000001 ret=7eb16ea2 005e:Ret advapi32.CryptReleaseContext() retval=00000001 ret=0170d003 ... 005e:Call KERNEL32.GetLastError() ret=01506f51 005e:Ret KERNEL32.GetLastError() retval=00000000 ret=01506f51 005e:Call msvcrt._vsnwprintf_s(02faf014,00000400,000003ff,02033b10 L"ERROR [%d]",02faefe0) ret=0042c8ce 005e:Ret msvcrt._vsnwprintf_s() retval=00000009 ret=0042c8ce 005e:Call user32.MessageBoxW(00000000,02033b28 L"Please use the launcher",02faf014 L"ERROR [0]",00000000) ret=01506f76 --- snip ---
Setting pipe to message mode fails because SetNamedPipeHandleState() is a stub.
Funny tidbit: the child process really checks if the parent is older (GetProcessTimes() on both, CompareFileTime()) ;-)
$ wine --version wine-1.7.9-309-ga01cb46
Regards
*** This bug has been marked as a duplicate of bug 17273 ***