子プロセスを、外部アプリケーションによってロードされている dll に関連付けようとしています。その理由は、dll がアンロードされるとすぐにこの子プロセスを閉じたいからです。
ガイダンスとしてこの質問を確認しましたが、デフォルトでCreateProcess
は、呼び出し元の DLL ではなく、子プロセスを外部アプリケーションに関連付けているようです。
これは、私が達成しようとしていることを説明するコードのスニペットです。
DLL から:
// ... Initialize ghJob to JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
if (::CreateProcess( NULL, szCmdline , NULL, NULL, TRUE, CREATE_BREAKAWAY_FROM_JOB , NULL, NULL, &info, &processInfo)) // <-- Here is where I'd like to set the parent to the calling DLL
{
// SetParent(processInfo.hProcess, dllHinst) <-- This isn't right, but something like this
AssignProcessToJobObject( ghJob, processInfo.hProcess);
}
特に私が間違った方法で行っている場合は、この問題に関する洞察をいただければ幸いです。