Windows DebugActiveProcessStop是否关闭句柄?

Windows DebugActiveProcessStop是否关闭句柄?,windows,debugging,winapi,Windows,Debugging,Winapi,根据,ContinueDebugEvent将在EXIT\u THREAD\u DEBUG\u EVENT和EXIT\u PROCESS\u DEBUG\u EVENT之后关闭句柄 在以下情况下,这些句柄会发生什么情况: DebugSetProcessKillOnExit(FALSE); // Keep the process running after stopping the debugger. DebugActiveProcessStop(dwProcessId); 进程和线程仍将运行,并

根据,
ContinueDebugEvent
将在
EXIT\u THREAD\u DEBUG\u EVENT
EXIT\u PROCESS\u DEBUG\u EVENT
之后关闭句柄

在以下情况下,这些句柄会发生什么情况:

DebugSetProcessKillOnExit(FALSE); // Keep the process running after stopping the debugger.
DebugActiveProcessStop(dwProcessId);
进程和线程仍将运行,并且没有提到任何关于句柄的内容。我可以假定它们将为我关闭吗?

是的,在通过调用实际停止调试之前调用。
CloseAllProcessHandles
关闭所有打开的线程和进程句柄。它列表存储在线程
TEB
-这意味着只能从调用其他调试api的同一线程(例如
WaitForDebugEvent
)进行调用。不幸的是,我也没有在文件中确认这一点,只有研究。这是win10的屏幕截图


遗憾的是,虽然没有记录在案,但这似乎是答案。谢谢@user1000039-这个技巧使用句柄,
DebugActiveProcess
实现(在调试过程中创建线程),不可能同时组合等待调试事件和gui消息-我个人不使用win32调试api而是使用DbgUi的原因api@user1000039-同样在Alex Ionescu中,请注意
CloseAllProcessHandles
。但我没有这方面的msdn文档