SIGINT在NT本机API中转换成什么?

时间:2011-02-04 12:55:05

标签: winapi signals internals nt-native-api

Windows在控制台应用程序中支持SIGINT以响应Ctrl-C。这意味着Windows具有从远程线程中断正在运行的线程的功能(甚至进程!)并调用信号处理程序。

这究竟是如何在NT Native API级别上运行的?这个线程中断API可以在用户空间中用于其他目的吗?

2 个答案:

答案 0 :(得分:2)

根据http://msdn.microsoft.com/en-us/library/xdkz3x12(v=vs.71).aspx,SIGINT会导致创建一个新线程来处理中断。

所以看起来它并没有真正“中断”任何正在运行的线程。您可以通过简单地生成自己的线程来实现相同的效果。

这里有更多评论:

答案 1 :(得分:0)

您可以随时暂停目标线程,修复上下文以执行您的过程然后恢复它。它很丑,但是如果你想中断一个线程来执行一个程序,那就可以了。

控制台和CTRL + C处理程序是Win32构造,并且在本机API级别确实不存在。