Функция TerminateProcess (processthreadsapi.h)

Завершает указанный процесс и все его потоки.

Синтаксис

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

Параметры

[in] hProcess

Дескриптор процесса, который необходимо завершить.

Дескриптор должен иметь право доступа PROCESS_TERMINATE . Дополнительные сведения см. в разделе "Управление безопасностью и доступом".

[in] uExitCode

Код выхода, используемый процессом и потоками, завершается в результате этого вызова. Используйте функцию GetExitCodeProcess для получения значения выхода процесса. Используйте функцию GetExitCodeThread для получения значения выхода потока.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Функция TerminateProcess используется для безусловного завершения процесса. Состояние глобальных данных, поддерживаемых библиотеками динамической компоновки (DLL), может быть скомпрометировано, если используется TerminateProcess , а не ExitProcess.

Эта функция останавливает выполнение всех потоков в процессе и запрашивает отмену всех ожидающих операций ввода-вывода. Завершенный процесс не может выйти, пока все ожидающие операции ввода-вывода не будут завершены или отменены. Когда процесс завершается, его объект ядра не уничтожается до тех пор, пока все процессы, имеющие открытые дескрипторы для процесса, не отпустили эти дескрипторы.

Когда процесс завершается, TerminateProcess останавливает выполнение вызывающего потока и не возвращается. В противном случае TerminateProcess является асинхронным; он инициирует завершение и возвращает немедленно. Если необходимо убедиться, что процесс завершен, вызовите функцию WaitForSingleObject с дескриптором для процесса.

Процесс не может препятствовать завершению самого процесса.

После завершения процесса вызов TerminateProcess с открытыми дескрипторами завершается сбоем с кодом ошибки ERROR_ACCESS_DENIED (5).

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header processthreadsapi.h (включая Windows.h в Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

ExitProcess

GetExitCodeProcess

GetExitCodeThread

OpenProcess

Функции процессов и потоков

Процессы

Прекращение процесса