https://bugs.winehq.org/show_bug.cgi?id=38960
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |NEW URL| |https://steamcdn-a.akamaihd | |.net/client/installer/Steam | |Setup.exe CC| |focht@gmx.net Component|-unknown |kernel32 Summary|Steam 'steamwebhelper.exe' |Steam 'steamwebhelper.exe' |crashes |based on CEF v3.2357.1273 - | |Chromium v44.0.2378.0 | |crashes in Win7 mode | |('kernel32.SetFileCompletio | |nNotificationModes' is a | |stub) Ever confirmed|0 |1
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
Relevant part of trace log:
--- snip --- ... 0049:Call PE DLL (proc=0x11856549,module=0x10000000 L"libcef.dll",reason=THREAD_ATTACH,res=(nil)) ... 0049:Ret PE DLL (proc=0x11856549,module=0x10000000 L"libcef.dll",reason=THREAD_ATTACH,res=(nil)) retval=1 0049:Call TLS callback (proc=0x4c8ff0,module=0x400000,reason=THREAD_ATTACH,reserved=0) 0049:Ret TLS callback (proc=0x4c8ff0,module=0x400000,reason=THREAD_ATTACH,reserved=0) 0049:Starting thread proc 0x100667c0 (arg=0x182678) ... 0049:Call KERNEL32.CreateIoCompletionPort(ffffffff,00000000,00000000,00000001) ret=100a5340 0049:Ret KERNEL32.CreateIoCompletionPort() retval=00000164 ret=100a5340 ... 0049:Call KERNEL32.GetQueuedCompletionStatus(00000164,0218e834,0218e80c,0218e81c,00000000) ret=100a5617 0049:Ret KERNEL32.GetQueuedCompletionStatus() retval=00000000 ret=100a5617 ... 0049:Call KERNEL32.GetModuleHandleA(123c1bcc "user32.dll") ret=109a282c 0049:Ret KERNEL32.GetModuleHandleA() retval=7ec20000 ret=109a282c 0049:Call KERNEL32.GetProcAddress(7ec20000,123c1bd8 "IsImmersiveProcess") ret=109a2838 0049:Ret KERNEL32.GetProcAddress() retval=00000000 ret=109a2838 ... 0049:Call KERNEL32.GetModuleHandleW(122dae10 L"kernel32.dll") ret=111dad95 0049:Ret KERNEL32.GetModuleHandleW() retval=7b820000 ret=111dad95 0049:Call KERNEL32.GetProcAddress(7b820000,11f0ad48 "SetFileCompletionNotificationModes") ret=111dada5 0049:Ret KERNEL32.GetProcAddress() retval=7b8310b4 ret=111dada5 0049:Call KERNEL32.GetProcAddress(7b820000,11f0add0 "CancelIoEx") ret=111dadb0 0049:Ret KERNEL32.GetProcAddress() retval=7b82cbfc ret=111dadb0 ... 0049:Call KERNEL32.SetFileCompletionNotificationModes(0000021c,00000001) ret=111db06f 0049:fixme:file:SetFileCompletionNotificationModes 0x21c 1 - stub 0049:Ret KERNEL32.SetFileCompletionNotificationModes() retval=00000000 ret=111db06f 0049:trace:seh:raise_exception code=80000003 flags=0 addr=0x100894f9 ip=100894fa tid=0049 0049:trace:seh:raise_exception eax=00000000 ebx=00000000 ecx=1245a910 edx=0218ef4c esi=001c5790 edi=001c6948 0049:trace:seh:raise_exception ebp=0218e530 esp=0218e518 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200246 0049:trace:seh:call_stack_handlers calling handler at 0x7bcb1e33 code=80000003 flags=0 0049:Call KERNEL32.UnhandledExceptionFilter(0218e004) ret=7bcb1e6d --- snip ---
Version info resource dump on 'libcef.dll' to determine the exact CEF version:
--- snip --- 1 VERSIONINFO FILEVERSION 3,2357,1273,0 PRODUCTVERSION 3,2357,1273,0 FILEOS 0x4 FILETYPE 0x2 { BLOCK "StringFileInfo" { BLOCK "040904b0" { VALUE "FileDescription", "Chromium Embedded Framework (CEF) Dynamic Link Library" VALUE "FileVersion", "3.2357.1273.g41b7170" VALUE "InternalName", "libcef" VALUE "LegalCopyright", "Copyright (C) 2015 The Chromium Embedded Framework Authors" VALUE "OriginalFilename", "libcef.dll" VALUE "ProductName", "Chromium Embedded Framework (CEF) Dynamic Link Library" VALUE "ProductVersion", "3.2357.1273.g41b7170" } }
BLOCK "VarFileInfo" { VALUE "Translation", 0x0409 0x04B0 } } --- snip ---
-> CEF v3, branch 2357
https://cefbuilds.com/#branch_2357
--- snip --- 2015-04-27 CEF 3.2378.1268.g4715a16 (67MB) - Chromium 44.0.2378.0 gc03558c9 Test App (21MB) Debug Symbols (120MB) Release Symbols (109MB) --- snip ---
The symbol information (PDB) can't be used here, it's a custom build.
Reviewing the Chromium project sources is enough.
--- snip --- $ svn co https://src.chromium.org/chrome/trunk/src/mojo --- snip ---
https://src.chromium.org/viewvc/chrome/trunk/src/mojo/system/raw_channel_win...
--- snip --- ... 22 namespace mojo { 23 namespace system { 24 25 namespace { 26 27 class VistaOrHigherFunctions { 28 public: 29 VistaOrHigherFunctions(); 30 31 bool is_vista_or_higher() const { return is_vista_or_higher_; } 32 33 BOOL SetFileCompletionNotificationModes(HANDLE handle, UCHAR flags) { 34 return set_file_completion_notification_modes_(handle, flags); 35 } ... 51 VistaOrHigherFunctions::VistaOrHigherFunctions() 52 : is_vista_or_higher_(base::win::GetVersion() >= base::win::VERSION_VISTA), 53 set_file_completion_notification_modes_(NULL), 54 cancel_io_ex_(NULL) { 55 if (!is_vista_or_higher_) 56 return; 57 58 HMODULE module = GetModuleHandleW(L"kernel32.dll"); 59 set_file_completion_notification_modes_ = 60 reinterpret_cast<SetFileCompletionNotificationModesFunc>( 61 GetProcAddress(module, "SetFileCompletionNotificationModes")); 62 DCHECK(set_file_completion_notification_modes_); 63 64 cancel_io_ex_ = 65 reinterpret_cast<CancelIoExFunc>(GetProcAddress(module, "CancelIoEx")); 66 DCHECK(cancel_io_ex_); 67 } 68 69 base::LazyInstance<VistaOrHigherFunctions> g_vista_or_higher_functions = 70 LAZY_INSTANCE_INITIALIZER; ... 527 bool RawChannelWin::OnInit() { 528 DCHECK_EQ(base::MessageLoop::current(), message_loop_for_io()); 529 530 DCHECK(handle_.is_valid()); 531 if (skip_completion_port_on_success_ && 532 !g_vista_or_higher_functions.Get().SetFileCompletionNotificationModes( 533 handle_.get().handle, FILE_SKIP_COMPLETION_PORT_ON_SUCCESS)) { 534 return false; 535 } 536 537 DCHECK(!io_handler_); 538 io_handler_ = new RawChannelIOHandler(this, handle_.Pass()); 539 540 return true; 541 } --- snip ---
MSDN: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365538%28v=vs.85%...
Source: https://source.winehq.org/git/wine.git/blob/01e538588282b521e86d299817e7335a...
--- snip --- 1046 BOOL WINAPI SetFileCompletionNotificationModes( HANDLE handle, UCHAR flags ) 1047 { 1048 FIXME("%p %x - stub\n", handle, flags); 1049 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 1050 return FALSE; 1051 } --- snip ---
Regards