2010-11-04 2 views
1

Je cours un processus par CreateProcess(...). Je reçois et garde le PROCESS_INFORMATION. Dans une situation normale, je suis en attente pour le processus à terminer par:rechercher un processus à terminer après un événement de sécurité

HANDLE hProcess = pWaitingThreadData->GetProcessHandle(); 
::WaitForSingleObject (hProcess, INFINITE); 

J'ai aussi une fonction de sécurité, qui a obtenu un message si un événement de sécurité se produit. Dans cette fonction de sécurité, je souhaite terminer immédiatement le processus que j'ai déjà exécuté.

la fonction de sécurité peut se produire à tout moment (pas seulement lorsque le processus est ouvert) et c'est une fonction générale. Je l'appelle avec le MESSAGE_MAP par: ON_REGISTERED_THREAD_MESSAGE (WM_SECEVENT, OnThreadSecEvent). Donc je ne peux pas passer un paremeter du processus à la fonction de sécurité.

Le problème est, dans la fonction de sécurité, je n'ai pas le processID ou threadID de ce processus.

Comment trouver et terminer ce processus?

Merci

Répondre

0

Un moyen serait d'envoyer la processID dans le cadre du message à votre fonction de sécurité.

+0

Mais la fonction de sécurité peut se produire à tout moment et c'est une fonction générale. Je l'appelle avec le MESSAGE_MAP par ON_REGISTERED_THREAD_MESSAGE (WM_SECEVENT, OnThreadSecEvent). – Erez

Questions connexes