I have a program where I call CreateProcess, then wait for it to finish with WaitForSingleObject, and finally I grab its exit status with GetExitCode. (However, the status variable contains 0 for crashed processes.) <- My apologies, this was incorrect. I was printing with the wrong size of variable.
How do I detect when the child crashed?
If you have a control over child process make it return distinct error code on success, whereas if 0 then it means program crashed.