我正在使用TerminateProcess()杀死另一个进程(我知道这不是最好的方法,但是它是已经部署的现有代码)。在大多数情况下,一切都会按预期工作,但是在两台特定的计算机上,即使TerminateProcess()返回的非零值也表示成功,该进程也不会终止。
我们试图从任务管理器中终止该进程,但该进程被终止了。
文档说,只有在所有IO操作完成或取消后,该过程才会终止,因此我们认为也许有一些待处理的IO操作,但是如果是这种情况,任务管理器也将无法终止该过程。
调用TerminateProcess()的进程正在系统帐户下运行,因此我们认为这不是权限问题(此外,如果是权限问题,我们希望该函数返回ACCESS_DENIED)。
我们试图杀死的进程正在RDP会话中作为初始程序运行。
有人对导致这种行为的原因有任何想法吗?还是建议解决方法?我们尝试使用Process Monitor和Process Explorer,但没有找到任何东西。