Функция TerminateProcess


Функция TerminateProcess завершает работу заданного процесса и всех его потоков.

Синтаксис

BOOL TerminateProcess(

HANDLE hProcess, // дескриптор процесса

UINT uExitCode   // код выхода из процесса

);

Параметры

hProcess

[in] Дескриптор процесса, который завершает работу.

Windows NT/2000/XP: дескриптор должен иметь право доступа PROCESS_TERMINATE. Для получения дополнительной информации, см. статью Защита процесса и права доступа.

uExitCode

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

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

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

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

Замечания

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

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

Завершение процесса вызывает ниже перечисленное:

    1. Все дескрипторы объектов, открытые процессом, закрываются.
    2. Все потоки в процессе завершают исполнение своего кода.
    3. Состояние объекта процесса становится сигнальным, удовлетворяя требования любых потоков, которые ждали когда закончиться процесс. Объект процесса удаляется, когда закрывается последний дескриптор процесса.
    4. Состояние всех потоков процесса становится сигнальным, удовлетворяя требования любых потоков, которые ждали завершения работы потоков.
    5. Состояние завершения процесса изменяется от STILL_ACTIVE до значения выхода процесса.

Завершение процесса не заставляет дочерние процессы завершать работу.

Динамически подключаемые библиотеки (DLL), связанные с процессом не уведомляются, что процесс заканчивает работу.

Завершение процесса не создает уведомления для фильтр (hook) - процедуры WH_CBT.

Смотри также

Краткий обзор Процессы и потоки, Функции, используемые процессами и потоками, ExitProcess, OpenProcess, GetExitCodeProcess, GetExitCodeThread

Размещение и совместимость TerminateProcess

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Kernel32.lib

Заголовочный файл

 

- объявлено в

Winbase.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz