Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows:自动挂起整个进程?_Windows_Winapi_Process_Suspend - Fatal编程技术网

Windows:自动挂起整个进程?

Windows:自动挂起整个进程?,windows,winapi,process,suspend,Windows,Winapi,Process,Suspend,使用Win32 API,只能使用SuspendThread()挂起单个线程,而不能在一次调用中挂起整个进程。 对进程线程进行迭代并一次挂起一个线程不是一个好的选择,因为这可能会导致死锁和意外行为 这应该是在内核中使用DDK函数(我不记得它的名字)可以实现的 如何将此函数公开到用户模式 有没有其他方法可以在不去内核的情况下实现这一点 SysInternals process explorer具有挂起进程的选项。它是如何做到的?实际上,这正是它看起来要做的事情——它在创建转储之前单独挂起进程中的所有

使用Win32 API,只能使用
SuspendThread()
挂起单个线程,而不能在一次调用中挂起整个进程。
对进程线程进行迭代并一次挂起一个线程不是一个好的选择,因为这可能会导致死锁和意外行为

这应该是在内核中使用DDK函数(我不记得它的名字)可以实现的 如何将此函数公开到用户模式

有没有其他方法可以在不去内核的情况下实现这一点


SysInternals process explorer具有挂起进程的选项。它是如何做到的?

实际上,这正是它看起来要做的事情——它在创建转储之前单独挂起进程中的所有线程(调用线程除外)

这本身不应导致死锁或意外行为,尽管显然最好从单独的进程中执行