ExitProcess |
kernel32.dll | Sortir d'un processus |
---|---|---|
Windows NT 4+, 2000, XP, 2003 |
Syntaxe
VOID ExitProcess( UINT uExitCode ); |
Paramètres
Nom | Description |
---|---|
uExitCode | Ce paramètre permet d'indiquer le code de sortie pour le processus et tous ses processus léger. |
Description
Cette fonction permet de terminer un processus et tous ses processus légers.
Remarques
- Vous pouvez utiliser la fonction GetExitCodeProcess pour récupérer la valeur de retour de ce processus ou pour obtenir la valeur de sortie d'un processus léger.
- La fermeture d'un processus provoque les événements suivants : Tous les processus léger du processus, à l'exception du processus appelant, terminent leur exécution sans recevoir d'avertissement DLL_THREAD_DETACH, les états de tous les processus léger terminés sont signalés, les fonctions de point d'entrée de toutes les bibliothèques de liens dynamiques (DLL) chargées sont appelées avec DLL_PROCESS_DETACH, une fois que toutes les DLL attachées ont exécuté un code de terminaison de processus, la fonction ExitProcess termine le processus en cours, y compris les processus léger l'appelant, l'état du processus léger appelant devient signalé, toutes les poignées d'objets ouvertes par le processus sont fermées, l'état de transmission du processus passe de STILL_ACTIVE à la valeur de sortie de processus, l'état de l'objet de processus est signalé, satisfaisant tous les processus léger attendant la fin du processus.
- Si l'un des processus léger terminés du processus contient un verrou et que le code DLL détaché dans l'une des DLL chargées tente d'acquérir le même verrou, l'appel à ExitProcess entraîne un blocage. Toutefois, si un processus se termine en appelant TerminateProcess, les DLL auxquelles le processus est attaché ne sont pas averties de la fin du processus. Par conséquent, si vous ne connaissez pas l'état de tous les processus léger dans votre processus, il est préférable d'appeler TerminateProcess plutôt que ExitProcess.
- L'appel de ExitProcess dans une DLL peut entraîner des erreurs inattendues d'application ou de système. Il est souhaitable d'appeler ExitProcess dans une DLL uniquement si vous savez quelles applications ou composantes systèmes chargeront la DLL et qu'il est sûr d'appeler ExitProcess dans ce contexte.
- Quitter un processus ne provoque pas l'arrêt des processus enfants.
- Quitter un processus ne supprime pas nécessairement l'objet de processus du système d'exploitation. Un objet de processus est supprimé lorsque le dernier identificateur de processus est fermé.
Voir également
Langage de programmation - Structure de contrôle - Programmation multitâche
Dernière mise à jour : Mercredi, le 6 août 2014