https://bugs.winehq.org/show_bug.cgi?id=35933
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com --- Yeah, it helps. However I'm unable to reproduce that thing, probably because application code changed. Failure looks like this:
--- 0028:trace:rpc:ndr_client_call pStubDesc 0x1061e868, pFormat 0x1061ebee, ... 0028:trace:rpc:ndr_client_call NDR Version: 0x50002 0028:trace:rpc:ndr_client_call stack size: 0x4 0028:trace:rpc:ndr_client_call proc num: 20 0028:trace:rpc:NdrClientInitializeNew (pRpcMessage == ^0x32df28, pStubMsg == ^0x32e004, pStubDesc == ^0x1061e868, ProcNum == 20) 0028:trace:rpc:ndr_client_call Oi_flags = 0x48 0028:trace:rpc:ndr_client_call MIDL stub version = 0x700022b 0028:trace:rpc:client_get_handle Explicit primitive handle @ 0 0028:trace:rpc:ndr_client_call Oif_flags = HasExtensions 0028:fixme:ole:NdrCorrelationInitialize (0x32e004, 0x32e0e0, 1024, 0x0): stub 0028:trace:rpc:ndr_client_call CALCSIZE 0028:trace:rpc:ndr_client_call GETBUFFER 0028:trace:rpc:NdrGetBuffer (stubmsg == ^0x32e004, buflen == 0, handle == 0x19e930) 0028:trace:rpc:I_RpcGetBuffer (0x32df28): BufferLength=0 0028:trace:rpc:I_RpcGetBuffer Buffer=0x1a20a0 0028:trace:rpc:I_RpcNegotiateTransferSyntax (0x32df28) 0028:trace:rpc:RPCRT4_OpenBinding (Binding == ^0x19e930) 0028:trace:rpc:RPCRT4_CreateConnection connection: 0x1aa2f0 0028:trace:rpc:RPCRT4_OpenClientConnection (Connection == ^0x1aa2f0) 0028:trace:rpc:rpcrt4_conn_open_pipe connecting to \.\pipe\lrpc\Evolve 0028:warn:rpc:rpcrt4_conn_open_pipe connection failed, error=2 0028:trace:rpc:RPCRT4_ReleaseConnection destroying connection 0x1aa2f0 0028:trace:rpc:RPCRT4_CloseConnection (Connection == ^0x1aa2f0) wine: Call from 0x7b83959c to unimplemented function msvcr100.dll.__CxxExceptionFilter, aborting wine: Call from 0x7b83959c to unimplemented function msvcr100.dll.__CxxExceptionFilter, aborting wine: Call from 0x7b83959c to unimplemented function msvcr100.dll.__CxxExceptionFilter, aborting ---
And client_get_handle() only appears twice with same explicit primitive handle type, so probably it fails even earlier now that it used to, or they don't use callbacks anymore and if fails for other reasons. Anyway I think patch is correct.