Hi,
I finally manage to understand where the problem comes from. And unfortunately there's a pretty serious inter process communication problem.
CreateProcess waits until the child process initialization is done. This is handled by the server, which receives a init_process_done request from the child process, and then 'wakes' the parent process.
My parent process calls SetThreadContext right after CreateProcess returns. Unfortunately, that's done in the middle of a wine server call from the child process (after it has sent the init_process_done request, but before he has read the reply). This causes some other server calls to be made, and a desynchronization to occur.
I'll try to have a look at the code to find a way to fix that. As I don't have a global view of all the wine architecture, I'll probably forget a lot of side effects, so I'd appreciate very much if someone more experienced than me could give me a few advices.
Thanks in advance.
Laurent Pinchart