Поделиться через


Функция 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 останавливает выполнение вызывающего потока и не возвращается. В противном случае Выполнение выполняется асинхронно; он инициирует завершение и возвращается немедленно. Если необходимо убедиться, что процесс завершен, вызовите функцию WaitForSingleObject с дескриптором процесса.

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

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

Требования

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

См. также

ExitProcess

GetExitCodeProcess

GetExitCodeThread

OpenProcess

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

Processes

Завершение процесса

API Vertdll, доступные в анклавах VBS