ExitProcess-Funktion (processthreadsapi.h)
Beendet den aufrufenden Prozess und alle zugehörigen Threads.
Syntax
void ExitProcess(
[in] UINT uExitCode
);
Parameter
[in] uExitCode
Der Exitcode für den Prozess und alle Threads.
Rückgabewert
Keine
Bemerkungen
Verwenden Sie die GetExitCodeProcess-Funktion , um den Exitwert des Prozesses abzurufen. Verwenden Sie die GetExitCodeThread-Funktion , um den Exitwert eines Threads abzurufen.
Das Beenden eines Prozesses verursacht Folgendes:
- Alle Threads im Prozess mit Ausnahme des aufrufenden Threads beenden ihre Ausführung, ohne eine DLL_THREAD_DETACH Benachrichtigung zu erhalten.
- Die Zustände aller Threads, die in Schritt 1 beendet wurden, werden signalisiert.
- Die Einstiegspunktfunktionen aller geladenen DlLs (Dynamic Link Libraries) werden mit DLL_PROCESS_DETACH aufgerufen.
- Nachdem alle angefügten DLLs den Prozessabschlusscode ausgeführt haben, beendet die ExitProcess-Funktion den aktuellen Prozess, einschließlich des aufrufenden Threads.
- Der Zustand des aufrufenden Threads wird signalisiert.
- Alle vom Prozess geöffneten Objekthandles werden geschlossen.
- Die status des Prozesses ändert sich von STILL_ACTIVE zum Exitwert des Prozesses.
- Der Status des Prozessobjekts wird signalisiert und erfüllt alle Threads, die auf das Beenden des Prozesses gewartet haben.
Das Aufrufen von ExitProcess in einer DLL kann zu unerwarteten Anwendungs- oder Systemfehlern führen. Achten Sie darauf , ExitProcess nur aus einer DLL aufzurufen, wenn Sie wissen, welche Anwendungen oder Systemkomponenten die DLL laden werden und dass es sicher ist, ExitProcess in diesem Kontext aufzurufen.
Das Beenden eines Prozesses führt nicht dazu, dass untergeordnete Prozesse beendet werden.
Wenn Sie einen Prozess beenden, wird das Prozessobjekt nicht unbedingt aus dem Betriebssystem entfernt. Ein Prozessobjekt wird gelöscht, wenn das letzte Handle für den Prozess geschlossen wird.
Beispiele
Ein Beispiel finden Sie unter Erstellen eines untergeordneten Prozesses mit umgeleiteter Eingabe und Ausgabe.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | processthreadsapi.h (enthalten Windows.h unter Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |