O que o SIGINT traduz na API nativa do NT?
-
28-10-2019 - |
Pergunta
O Windows oferece suporte para SIGINT em aplicativos de console em resposta a Ctrl-C.Isso significa que o Windows tem funcionalidade para interromper um thread em execução de um thread remoto (processo até!) E invocar um manipulador de sinal.
Exatamente como isso funciona no nível da API NT Native?Esta API de interrupção de thread pode ser usada para outros fins no espaço do usuário?
Solução
De acordo com http:// msdn.microsoft.com/en-us/library/xdkz3x12 (vvs.71).aspx , um sigint faz com que um novo thread seja criado para lidar com a interrupção.
Então parece que não é realmente "interromper" nenhum fio de corrida.Você pode obter o mesmo efeito simplesmente desovando seu próprio tópico.
Há mais comentário aqui:
Outras dicas
Você sempre pode suspender o thread de destino, corrigir o contexto para executar seu procedimento e, em seguida, retomá-lo.É feio, mas funcionaria se você quisesse interromper um thread para executar um procedimento.
O console e o manipulador CTRL + C são construções Win32 e não existem realmente no nível da API nativa.