http://bugs.winehq.org/show_bug.cgi?id=34332
--- Comment #4 from Berillions berillions@gmail.com 2013-08-23 13:05:38 CDT --- Hi guys,
I think that i found why the game crash when wine is set to Win7. I compared the +relay log from WinVista and Win7 and i found this :
In the Win7 log, the game seems to crash after the call of this function "GetLogicalProcessorInformationEx" : ------ Snip ------ 005b:Call KERNEL32.GetProcAddress(7b810000,02cf27e0 "GetLogicalProcessorInformationEx") ret=024c53ad 005b:Ret KERNEL32.GetProcAddress() retval=7b822a14 ret=024c53ad 005b:Call KERNEL32.GetLogicalProcessorInformationEx(0000ffff,00000000,033df940) ret=024c55cd 005b:fixme:process:GetLogicalProcessorInformationEx (65535,(nil),0x33df940): stub 005b:Ret KERNEL32.GetLogicalProcessorInformationEx() retval=00000000 ret=024c55cd 005b:Call KERNEL32.GetLastError() ret=024c55d5 005b:Ret KERNEL32.GetLastError() retval=00000078 ret=024c55d5 005b:Call KERNEL32.GetLastError() ret=024c55dc 005b:Ret KERNEL32.GetLastError() retval=00000078 ret=024c55dc 005b:Call ntdll.RtlAllocateHeap(03a54000,00000000,00000001) ret=0249222a 005b:Ret ntdll.RtlAllocateHeap() retval=03a54b90 ret=0249222a 005b:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0032faa4) ret=02497737 005b:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b83a42e ip=7b83a42e tid=005b ------ Snip ------
After to check in the WinVista log, it's not this function which is called but "GetLogicalProcessorInformation" : ------ Snip ------ 0066:Call KERNEL32.GetProcAddress(7b810000,02c130f4 "GetLogicalProcessorInformation") ret=024c54a9 0066:Ret KERNEL32.GetProcAddress() retval=7b8229fc ret=024c54a9 0066:Call KERNEL32.GetLogicalProcessorInformation(00000000,033df940) ret=024c54e8 0066:Ret KERNEL32.GetLogicalProcessorInformation() retval=00000000 ret=024c54e8 0066:Call KERNEL32.GetLastError() ret=024c54f0 0066:Ret KERNEL32.GetLastError() retval=0000007a ret=024c54f0 0066:Call ntdll.RtlAllocateHeap(03a54000,00000000,00000138) ret=0249222a 0066:Ret ntdll.RtlAllocateHeap() retval=03a55628 ret=0249222a 0066:Call KERNEL32.GetLogicalProcessorInformation(03a55628,033df940) ret=024c5548 0066:Ret KERNEL32.GetLogicalProcessorInformation() retval=00000001 ret=024c5548 ------ Snip ------
I look on the wine source website and i found that the "GetLogicalProcessorInformationEx" function is not completly implemented (http://source.winehq.org/source//dlls/kernel32/process.c#L3754)
The function return always "False" and if i look in msdn (http://msdn.microsoft.com/en-us/library/windows/desktop/dd405488%28v=vs.85%2...), the function must be return "true" if it succeeds.
I think it's the cause, i'm not an expert for the +relay log
Thanks, Max