Is it necessary to suspend a process before terminating it?
No, it's not necessary. However, if you have malware on your system that uses multiple processes that act as watchdogs for each other, then you would suspend them all first before terminating any of them.
In Process Explorer, the process is suspended using the NtSuspendProcess
syscall. See this page for several other possible methods.
There is no difference whether a process is suspended or running at time of termination – in both cases, the TerminateProcess
Win32 API is used, giving no chance for cleanup.