MSDN Documentation

TerminateProcess

The TerminateProcess function terminates the calling process or the specified process.

Function Prototype

BOOL TerminateProcess(
  HANDLE hProcess,
  UINT   uExitCode
);

Parameters

Parameter Description
hProcess

A handle to the process to be terminated. This parameter can be an access-right mask, or 0.

If this parameter is the current process, the process terminates without calling any C++ destructors or functions that are called by the C runtime of your DLL.

To terminate another process, the calling process must have the PROCESS_TERMINATE access right.

uExitCode

The exit code for the process. Use the macros EXIT_SUCCESS (defined as 0) or EXIT_FAILURE (defined as 1) for the exit code.

Return Value

If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The TerminateProcess function is used to terminate a process. When a process is terminated, the system performs the following actions:

  • All threads in the process are terminated.
  • The process's address space is decommitted.
  • The process's handle table is closed.
  • The process object is freed.

The system does not call the destructors for C++ objects or the atexit functions.

To terminate the current process, use the GetCurrentProcess function to get a pseudohandle to the current process and pass it to TerminateProcess.

Important

Use TerminateProcess with caution. Terminating a process abruptly can lead to data loss or corruption if the process has unsaved data or is in the middle of a critical operation.

Note

The system may create a new process that inherits the handle to the terminated process. For example, if you terminate process A, and process B subsequently creates a process C and inherits the handle to process A, the handle to process A will be closed. If you need to terminate a process, you should do so only after closing all handles to that process.

Requirements

Name Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Header winbase.h (include windows.h)
Library Kernel32.lib
DLL Kernel32.dll

See Also