>
>In addition, shutdowns via TerminateProcess() don't clean up, either, and are likely to require a reboot to clean up the system.
If an application need to use TerminateProcess(), then system should reboot for other reasons: The state of data mantained in DLLs is compromised.
But, terminating a process causes that all of the object handles opened by the process are closed (this include mutex handles).
Just an opinion... Not a fact.