Função TerminateProcess (processthreadsapi.h)

Encerra o processo especificado e todos os seus threads.

Sintaxe

BOOL TerminateProcess(
  [in] HANDLE hProcess,
  [in] UINT   uExitCode
);

Parâmetros

[in] hProcess

Um identificador para o processo a ser encerrado.

O identificador deve ter o acesso de PROCESS_TERMINATE correto. Para obter mais informações, consulte Direitos de Acesso e Segurança do Processo.

[in] uExitCode

O código de saída a ser usado pelo processo e os threads encerrados como resultado dessa chamada. Use a função GetExitCodeProcess para recuperar o valor de saída de um processo. Use a função GetExitCodeThread para recuperar o valor de saída de um thread.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função TerminateProcess é usada para fazer com que um processo seja encerrado incondicionalmente. O estado dos dados globais mantidos por DLLs (bibliotecas de vínculo dinâmico) pode ser comprometido se TerminateProcess for usado em vez de ExitProcess.

Essa função interrompe a execução de todos os threads dentro do processo e solicita o cancelamento de todas as E/S pendentes. O processo encerrado não poderá sair até que toda e/S pendente seja concluída ou cancelada. Quando um processo é encerrado, seu objeto kernel não é destruído até que todos os processos que têm identificadores abertos para o processo liberem esses identificadores.

Quando um processo é encerrado, TerminateProcess interrompe a execução do thread de chamada e não retorna. Caso contrário, TerminateProcess será assíncrono; ele inicia o encerramento e retorna imediatamente. Se você precisar ter certeza de que o processo foi encerrado, chame a função WaitForSingleObject com um identificador para o processo.

Um processo não pode impedir que ele seja encerrado.

Depois que um processo for encerrado, a chamada para TerminateProcess com identificadores abertos para o processo falhará com ERROR_ACCESS_DENIED (5) código de erro.

Requisitos

   
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho processthreadsapi.h (inclua Windows.h no Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

ExitProcess

Getexitcodeprocess

GetExitCodeThread

Openprocess

Funções de thread e processo

Processos

Encerrando um processo

APIs Vertdll disponíveis em enclaves de VBS