在Windows中注销用户会话是如何杀死的;“不可质疑的”;过程?
我启动了一个处于“暂停”状态的进程。我无法通过任何正常方式(process explorer、task manager、WinDbg)终止或恢复此进程 但注销会话确实会终止此进程。怎么用?当我注销时,操作系统使用的机制与Process Explorer的尝试有所不同 编辑:澄清一下-我假设Process Explorer在试图终止进程时正在调用TerminateProcess API函数。但进程状态中的某些内容正在阻止此操作。注销显然会调用一些不同的行为,Windows会忽略阻止TerminateProcess的内容,并由于会话结束而终止进程在Windows中注销用户会话是如何杀死的;“不可质疑的”;过程?,windows,debugging,process,Windows,Debugging,Process,我启动了一个处于“暂停”状态的进程。我无法通过任何正常方式(process explorer、task manager、WinDbg)终止或恢复此进程 但注销会话确实会终止此进程。怎么用?当我注销时,操作系统使用的机制与Process Explorer的尝试有所不同 编辑:澄清一下-我假设Process Explorer在试图终止进程时正在调用TerminateProcess API函数。但进程状态中的某些内容正在阻止此操作。注销显然会调用一些不同的行为,Windows会忽略阻止Terminat
作为用户,除了调用TerminateProcessAPI之外,还有其他方法来尝试和终止进程吗?process Explorer不能终止进程本身;它只能要求操作系统这样做。操作系统本身不必遵循自己的规则
请记住,是操作系统本身定义了流程。它可以很好地将流程定义为登录会话的一部分。这意味着,如果清理整个会话,则不需要清理单个进程。就像你在退出程序之前也不需要麻烦处理
CloseHandle
。这可能不是Windows有意做的事情。我的猜测是,任何导致进程停滞的因素(必须处于内核模式,可能是有故障的防病毒软件或有故障的设备驱动程序)都会在正确的情况下自行纠正,而注销会导致这种情况发生。看起来,注销解决了这个问题可能只是巧合。另一方面,当窗口站被删除时(例如),内核使用ZwTerminateProcess终止所有剩余的进程,并且可能从内核模式发出调用会绕过任何干扰原始进程的因素,这是有道理的。不过,要检验这一理论并不容易。在任何情况下,你最好解决最初的问题,而不是试图解决它-这不是正常的行为。