Kill processo árvore programaticamente em C #

Estou iniciando o Internet Explorer programaticamente com um código parecido com este:

ProcessStartInfo startInfo = new ProcessStartInfo("iexplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "http://www.google.com";
Process ieProcess = Process.Start(startInfo);

This gera 2 processos visíveis no Gerenciador de tarefas do Windows. Em seguida, tento interromper o processo com:

ieProcess.Kill();

Isso resulta em um dos processos no Gerenciador de Tarefas sendo encerrado e o outro permanece. Tentei verificar se há propriedades que teriam processos filhos, mas não encontrei nenhuma. Como posso matar o outro processo também? De maneira mais geral, como você elimina todos os processos associados a um processo iniciado com Process.Start?

questionAnswers(9)

yourAnswerToTheQuestion