Функция
ExitProcessФункция
ExitProcess заканчивает работу процесса и всех его потоков.Синтаксис
ExitProcess(
); |
Параметры
uExitCode
[in] Определяет код выхода для процесса, и для всех потоков, которые завершают работу в результате вызова этой функции. Используйте функцию
GetExitCodeProcess, чтобы получить значение выхода из процесса. Используйте функцию GetExitCodeThread, чтобы получить значение выхода из потока.Возвращаемые значения
У этой функции нет возвращаемого значения.
Замечания
Функция
ExitProcess - предпочтительный метод завершения процесса. Эта функция обеспечивает чистое отключение процесса. Такое завершение включает в себя вызов функций точек входа всех связанных динамически подключаемых библиотек (DLL) со значениями, указывающими, что процесс отключается от DLL. Если процесс заканчивается путем вызова TerminateProcess, DLL, к которым процесс подключен, не уведомляются о завершении процесса. После того, как все связанные DLL исполнили любое значение завершения, эта функция завершает работу текущего процесса.Завершение процесса происходит по нижеследующим причинам:
STILL_ACTIVE в значение выхода процесса.1. Все дескрипторы объектов, открытые процессом, закрываются.
2. Все потоки в процессе завершают свою работу по исполнению кода.
3. Состояние объекта процесса становится сигнальным, удовлетворяя любые потоки, которые ждали завершения процесса.
4. Состояния всех потоков процесса, становятся сигнальными, удовлетворяя любые потоки, которые ждали завершения работы потоков.
5. Состояние завершения процесса изменяется из
Завершение процесса не заставляет дочерние процессы закончить свою работу.
Завершение процесса необязательно удаляет объект процесса из операционной системы. Объект процесса удаляется тогда, когда закрывается последний дескриптор процесса.
Внимание! Вызов функции ExitProcess в DLL может привести к неожидаемому приложению или системным ошибкам. Убедитесь в том, что вызов функции ExitProcess из DLL происходит только в случае, если Вы знаете, какое приложение или элементы системы были загружены в DLL и в том, что в этом контексте вызвать функцию ExitProcess безопасно. |
Функции
ExitProcess, ExitThread, CreateThread, CreateRemoteThread и процесс, который запущен, (как результат вызова CreateProcess), в пределах процесса переводятся между собой в последовательный режим. Одновременно в адресном пространстве может происходить только одно из этих событий. Это означает нижеследующие ограничения выполнения:Пример кода
Пример смотри в статье
Создание дочернего процесса с перенаправленным вводом и выводом. Смотри такжеКраткий обзор Процессы и потоки, Функции, используемые процессами и потоками, CreateProcess, CreateRemoteThread, CreateThread, ExitThread, GetExitCodeProcess, GetExitCodeThread, OpenProcess, TerminateProcess
Размещение и совместимость ExitProcess |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да |
Windows Me |
Да |
Windows 98 |
Да |
Используемая библиотека |
Kernel32.lib |
Заголовочный файл |
|
- объявлено в |
Winbase.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |