Condividi tramite


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

Vedere anche

ExitProcess

GetExitCodeProcess

GetExitCodeThread

OpenProcess

Funzioni di processi e thread

Processi

Terminazione di un processo

API Vertdll disponibili nelle enclave VBS