Yet the parameters problem (WAS: CreateProcess API - undocumented use)

Eric Pouech eric.pouech at
Mon Feb 11 14:19:05 CST 2002

Ricardo a écrit :
> Ok, I've tried everything. Change the API used (GetStartupInfoA to
> GetStartupInfoW), changed the code, but I have no idea where to change in
> wine to, when I have 2 programs, doesn't loose the passed parameters. Here's
> how it works:
> PGM1 starts and ask the username and the password. If it's ok it writes
> FILE1.DAT and FILE1.IDX with settings to PGM2 to run. These files are wrote
> correctly, but PGM2 can't read them.
> When PGM1 finish wine seems like "closing" and than star over with the PGM2
> (called by PGM1 with the parameters writen (API CreateProcess)). But PGM2
> starts without any parameters (API GetStartupInfo) and without the
> parameters it cant run, so the program exit.
> I've already checked 3 files: loader/module.c, scheduler/process.c and
> memory/environ.c. And compared it with the MSDN Library, and the codes are
> the same, so no problems with it.
> How does WINE deal with a program calling another one?
this is done by sending back and forth data to the wine server
here are the flow chart of the creation, look up for the names

       creator           wineserver              child
        --- new_process --->   
                               <-- init_process-- 
                               <-- init_process_done--
<parent gets signaled>      
       --- get_new_process_info-> 

in your case, you need to extend new_process to pass the extra
parameter, init_process to retrieve those parameters, wineserver
to store them, the process creation to actually pass them and
finally the child startup code to make use of them

Eric Pouech (
"The future will be better tomorrow", Vice President Dan Quayle

More information about the wine-devel mailing list