ExitProcess (Windows CE 5.0)

Send Feedback

This function ends a process and all of its threads.

VOID ExitProcess(UINTuExitCode);

Parameters

  • uExitCode
    [in] Specifies the exit code for the process and for all threads that are terminated as a result of this call.

    To retrieve the process's exit value, use the GetExitCodeProcess function.

    To retrieve a thread's exit value, use the GetExitCodeThread function.

Return Values

None.

Remarks

This function is the preferred method of ending a process because it provides a clean process shutdown. This includes calling the entry-point function of all attached DLLs with a value indicating that the process is detaching from the DLL.

After all attached DLLs have executed a process termination value, this function terminates the current process.

The following actions are caused by terminating a process:

  • All object handles that were opened by the process are closed.
  • All threads in the process terminate their execution.
  • The state of the process object becomes signaled, satisfying threads waiting for the process to terminate.
  • The states of all threads of the process become signaled, satisfying threads waiting for the threads to terminate.
  • The termination status of the process changes from STILL_ACTIVE to the exit value of the process.

Terminating a process does not necessarily remove the process object from the OS. A process object is deleted when the last handle to the process is closed.

A process that is started as a result of a call by CreateProcess is run serially with the ExitProcess, ExitThread, and CreateThread functions. Within the parent process, only one of these events can happen in an address space at a time.

The following list shows the restrictions during the process:

  • During process startup and DLL initialization routines, new threads can be created, but they do not begin execution until DLL initialization is done for the process.
  • In a process, only one thread at a time can be in a DLL initialization or detach routine.
  • ExitProcess does not return to processes in the DLL initialization or detach routine.

Requirements

OS Versions: Windows CE 2.0 and later.
Header: Windows.h.
Link Library: Coredll.lib.

See Also

CreateProcess | CreateThread | ExitThread | GetExitCodeProcess | GetExitCodeThread | OpenProcess | TerminateProcess

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.