Paul Brannan wrote:

> I don't think it's fork() that is needed (since almost anything that can
> be done with fork() can be done with Threads), but fork/exec.  That's
> what CreateProcess does (and a bit more).  The fact that fork makes a
> copy of the process image isn't really important, since the process
> image gets overwritten when exec() is called.  What's more important is
> the fact that file descriptors get duplicated in the child process;
> there's sure to be someone out there who relies on that behavior.

Yup. I think that's what the fifth argument to CreateProcess (the 
"bInheritHandles" argument) ensures -- in combination with some of the 
other security-related arguments to that function.