CreateProcess API - undocumented use

Andreas Mohr andi at rhlx01.fht-esslingen.de
Fri Feb 1 05:03:43 CST 2002


On Fri, Feb 01, 2002 at 08:26:52AM -0200, Ricardo wrote:
> > Well, show us how the second program is supposed to get at that data,
> > and we'll show you what doesn't work at the moment.
> > I'm still a bit ignorant about how exactly your programs do that data
> > transfer (especially on the "client" side), thus please show us how
> > this is supposed to be done.
> 
> Thanks for helping me! I'll show how the program work:
> 
> I have 2 programs, let's call them pgm1 and pgm2. These programs have common
> data that pgm1 have to set on pgm2.
> To set pgm2 data we write a file with a random name (actually we start with
> a name, but if already exists we add 1 until we can create a new file) using
> pgm1, let's cal this file file1.dat.
> So, graphically it'll be:
> 
>    data ---------------->data
>       |                                |
>       |                                |
>   pgm1--> file1.dat--> pgm2
> 
> The file1.dat is passed as a parameter using the dwFillAttribute of the
> pgm2.
> 
> Hope it was what you were expecting.
Hmm, no, sorry, it's not.

I was asking to get more details on the client side,
i.e. how the program *actually* gets hold of the STARTUPINFO.dwFillAttribute
content that the parent passes via CreateProcess.

AFAICS you haven't mentioned that in any of your mails.

CreateProcess stuff can be found in loader/module.c, scheduler/process.c
and server/process.c, in case you want to investigate that path.

Ah, damn, forgot about GetStartupInfo().
That's probably how it's done.
You should really have mentioned it by now, though.
(been asking about three times now)

In this case memory/environ.c would also be relevant.

Oh, now I see.

The only problem right now is that dwFillAttribute simply doesn't get
passed at all to the wineserver and back. It simply gets omitted.
scheduler/process.c/PROCESS_Create() would have to pass dwFillAttribute
to the new_process request, and scheduler/process.c/PROCESS_Init()
would have to get dwFillAttribute added at the init_process request
in order to retrieve its value for the client program.
And the stuff in server/ (structs mainly) would have to get enhanced
to support this additional field.
Could you take care of this ?
And, even better, could you make sure all other relevant additional fields
in STARTUPINFO are being copied from parent to server to client, too ?

-- 
Andreas Mohr                        Stauferstr. 6, D-71272 Renningen, Germany
Tel. +49 7159 800604                http://home.nexgo.de/andi.mohr/




More information about the wine-devel mailing list