>>496
ありがとうございます。
今、主要なところを抜き出してプロジェクト作ってます。
詳細が分かりにくいのでもうちょっと書きます。

>> 子プロセスで WaitForSingleObject が拾ってくれない
>の動作の詳細(どうなってほしいが、実際にはどう動く)が知りたいところ。

親から子を CreateProcess してます。
親でイベントを2つ CreateEvent して、1つは子を終了させるときに SetEvent します。
そのあと親ではもう1つのイベントを WaitFor してます。
子の方では、起動時に、親で CreateEvent したのと同じ名前で OpenEvent してます。
その後、メインスレッドのループで WaitFor(タイムアウト0) していて、
親からプロセス終了のイベントがセットされるのを調べてます。(★ここでイベントがシグナルだと分かってくれない)
もしイベントが検知できたら、ゴミ掃除をしてからもう1つのイベントを SetEvent します。
親ではもう1つのイベントの方の WaitFor が検知できるはずなので、
その後、子をTerminateProcess してます。

>ちなみに子プロセスの終了検出は、子プロセスを普通に終了させて、
>親プロセスでは子プロセスHANDLEをWaitForSingleObject()するほうが素直。

はい、そうなんですよね。。。
ただスレッドとかその他グローバルに確保してるリソースを解放しないといけないので
『プロセスが終わる直前』を通知したいんです。