Suspension is achieved by any thread in a process calling DosSuspendThread. There is no accounting information associated with this API. One must examine all threads in the process to see if they are functioning correctly.
Freezing occurs for a number of reasons:
A new process has been created with the thread initially suspended.
The Session Manager (Shell Process 1) has used DosSystemService to freeze all threads of a process while a screen group switch occurs.
A Virtual Device Driver has called VDHFreezeVDM.
A Debug thread has called DosDebug using the DBG_C_Freeze command.
Again, there is no accounting information kept for this state.
If a single thread exists in the frozen process, check the parent process's threads for correct functioning.
If all threads are frozen check the Shell Process 1 for correct processing.