Funzione TerminateProcess (processthreadsapi.h)
Termina il processo specificato e tutti i relativi thread.
Sintassi
BOOL TerminateProcess(
[in] HANDLE hProcess,
[in] UINT uExitCode
);
Parametri
[in] hProcess
Handle per il processo da terminare.
L'handle deve avere il diritto di accesso PROCESS_TERMINATE . Per altre informazioni, vedere Elaborare diritti di sicurezza e accesso.
[in] uExitCode
Codice di uscita da usare dal processo e dai thread terminati in seguito a questa chiamata. Usare la funzione GetExitCodeProcess per recuperare il valore di uscita di un processo. Usare la funzione GetExitCodeThread per recuperare il valore di uscita di un thread.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
La funzione TerminateProcess viene usata per causare in modo incondizionato l'uscita di un processo. Lo stato dei dati globali gestiti dalle librerie di collegamento dinamico (DLL) può essere compromesso se TerminaProcess viene usato anziché ExitProcess.
Questa funzione arresta l'esecuzione di tutti i thread all'interno del processo e richiede l'annullamento di tutte le operazioni di I/O in sospeso. Il processo terminato non può uscire fino a quando tutte le operazioni di I/O in sospeso non sono state completate o annullate. Quando un processo termina, l'oggetto kernel non viene eliminato fino a quando tutti i processi che dispongono di handle aperti al processo hanno rilasciato tali handle.
Quando un processo termina, TerminaProcess arresta l'esecuzione del thread chiamante e non restituisce. In caso contrario, TerminateProcess è asincrono; avvia la terminazione e restituisce immediatamente. Se è necessario assicurarsi che il processo sia terminato, chiamare la funzione WaitForSingleObject con un handle per il processo.
Un processo non può impedire la chiusura.
Dopo aver terminato un processo, chiamare a TerminateProcess con handle aperti al processo non riesce con il codice di errore ERROR_ACCESS_DENIED (5).
Requisiti
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | processthreadsapi.h (includere Windows.h in Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |