Функция ExitProcess (processthreadsapi.h)
Завершает вызывающий процесс и все его потоки.
Синтаксис
void ExitProcess(
[in] UINT uExitCode
);
Параметры
[in] uExitCode
Код выхода для процесса и всех потоков.
Возвращаемое значение
None
Remarks
Используйте функцию GetExitCodeProcess , чтобы получить значение выхода процесса. Используйте функцию GetExitCodeThread , чтобы получить значение выхода потока.
Выход из процесса приводит к следующим причинам:
- Все потоки в процессе, за исключением вызывающего потока, завершают выполнение без получения уведомления DLL_THREAD_DETACH.
- Состояния всех потоков, завершенных на шаге 1, становятся сигнальными.
- Функции точки входа всех загруженных библиотек динамической компоновки (DLL) вызываются с помощью DLL_PROCESS_DETACH.
- После выполнения всех присоединенных библиотек DLL любого кода завершения процесса функция ExitProcess завершает текущий процесс, включая вызывающий поток.
- Состояние вызывающего потока становится сигнальным.
- Все дескрипторы объектов, открытые процессом, закрываются.
- Состояние завершения процесса меняется с STILL_ACTIVE на значение выхода процесса.
- Состояние объекта процесса становится сигнальным, удовлетворяющим всем потокам, ожидающим завершения процесса.
Вызов ExitProcess в библиотеке DLL может привести к непредвиденным ошибкам приложения или системы. Не забудьте вызвать ExitProcess из библиотеки DLL только в том случае, если вы знаете, какие приложения или системные компоненты будут загружать библиотеку DLL и что в этом контексте можно безопасно вызывать ExitProcess .
Выход из процесса не приводит к завершению дочерних процессов.
Выход из процесса не обязательно удаляет объект процесса из операционной системы. Объект процесса удаляется при закрытии последнего дескриптора процесса.
Примеры
Пример см. в разделе Создание дочернего процесса с перенаправленными входными и выходными данными.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | 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 |