|
Указывает дополнительные флаги, контролирующие класс приоритета и создания процесса. Могут использоваться следующие флаги в любых комбинациях, кроме особо отмеченных:
Значение | Описание |
CREATE_DEFAULT_ERROR_MODE | Новый процесс не наследует режим ошибки вызывающего процесса. С другой стороны, CreateProcess даёт текущий режим ошибки по умолчанию. Приложение устанавливает текущий режим ошибки по умолчанию вызовом SetErrorMode. Этот флаг обычно используется для многопотоковых приложений – оболочек, которые запускаются с отключением «трудных» (hard) ошибок. Решением по умолчанию для CreateProcess является наследование новым процессом режима ошибки вызывающего процесса. Установка этого флага меняет это решение, принимаемое по умолчанию. |
CREATE_NEW_CONSOLE | Новый процесс имеет новую консоль, в противоположность наследуемой родительской консоли. Этот флаг не может устанавливаться совместно с флагом DETACHED_PROCESS. |
CREATE_NEW_PROCESS_GROUP | Новый процесс является корневым для новой группы процессов. Группа процессов содержит все процессы, являющиеся наследниками этого корневого процесса. Идентификатор новой группы процессов совпадает с идентификатором, который возвращается параметром lpProcessInformation. Группы процессов используются функцией GenerateConsoleCtrlEvent для разрешения передачи сигналов CTRL+C или CTRL+BREAK группе консольных процессов. |
CREATE_SEPARATE_WOW_VDM | Только для Windows NT: Этот флаг устанавливается только при старте 16-битных Windows приложений. Если установлен, новый процесс запускается на приватной Виртуальной DOS Машине (VDM). По умолчанию, все 16-битные Windows приложения запускаются как потоки в единственной, совместно используемой VDM. Причиной является то, что при сбое разрушается одна Виртуальная DOS Машина; любые другие программы, запущенные в других VDM продолжают функционировать нормально. Также, 16-битные Windows приложения, запущенные в разных VDM имеют и раздельные запросы на ввод. Это значит, что если одно приложение даёт сбой, приложения в других отдельных VDM продолжают получать ввод. |
CREATE_SHARED_WOW_VDM | Только для Windows NT: Этот флаг устанавливается только при старте 16-битных Windows приложений. Если переключатель DefaultSeparateVDM в секции Windows файла WIN.INI равен TRUE, этот флаг вынуждает функцию CreateProcess перекрывать этот переключатель и запускать новый процесс в совместной Виртуальной DOS Машине. |
CREATE_SUSPENDED | Основной поток нового процесса создаётся в спящем режиме, и не запускается до тех пор, пока не вызвана функция ResumeTread. |
CREATE_UNICODE_ENVIRONMENT | Если установлен, то блок среды указанный параметром lpEnvironment использует символы Unicode. Если опущен, то блок среды использует символы ANSI. |
DEBUG_PROCESS | Если установлен, вызывающий процесс становится отладчиком, а новый поток становится отлаживаемым. Система оповещает отладчик обо всех отладочных событиях происходящих в новом процессе. Если вы создаёте процесс с этим флагом, только вызывающий поток (поток, который вызвал CreateProcess) может обращаться к функции WaitForDebugEvent. |
DEBUG_ONLY_THIS_PROCESS | Если не установлен и вызывающий процесс является отлаживаемым, новый процесс будет ещё одним отлаживаемым процессом отладчиком которого будет являться отладчик вызывающего процесса. Если вызывающий процесс не является отлаживаемым, то никаких акций, связанных с отладкой не применяется. |
DETACHED_PROCESS | Для консольных процессов, новый процесс не имеет доступа к консоли родительского процесса. Этот флаг не может использоваться совместно с флагом CREATE_NEW_CONSOLE. |
Параметр dwCreationFlags также контролирует класс приоритета процесса, который используется при определении управления приоритетами потоков процесса. Если ни один из следующих флагов приоритетов не установлен, по умолчанию классом приоритета является NORMAL_PRIORITY_CLASS, а классом приоритета создания процесса является IDLE_PRIORITY_CLASS. В этом случае, классом приоритета по умолчанию для дочернего процесса является IDLE_PRIORITY_CLASS. Может указываться один из следующих флагов:
Приоритет | Описание |
HIGH_PRIORITY_CLASS | Указывает, что процесс выполняет критичные ко времени задачи, которые должны выполняться незамедлительно. Потоки с высоким классом приоритета превалируют над потоками с классами приоритета IDLE и NORMAL. Примером является Диспетчер задач Windows, который должен быстро реагировать на вызов пользователя, невзирая на загрузку операционной системы. Будьте осторожны при использовании этого класса приоритета, так как такие приложения могут использовать все доступные ближайшие циклы процессора. |
IDLE_PRIORITY_CLASS | Указывает, что потоки процесса работают только тогда, когда система не занята и прерываются потоками с более высоким классом приоритета. Примером такого процесса является хранитель экрана. Такой класс приоритета наследуется дочерними процессами. |
NORMAL_PRIORITY_CLASS | Указывает на нормальный процесс без специальных требований к управлению задачами. |
REALTIME_PRIORITY_CLASS | Указывает, что процесс имеет максимально допустимый приоритет. Потоки с классом приоритета реального времени превалируют над потоками любых других классов приоритета, включая процессы операционной системы, выполняющие важные задачи. К примеру такой процесс может выполнятся быстрее самого короткого интервала очистки дискового кэша или он может приводить к зависанию мыши. |
Дата добавления: 2015-09-06; просмотров: 148 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
LpCommandLine | | | CЕМЕЙНЫЕ РАССТАНОВКИ: ПОДХОД Ы БЕРТА ХЕЛЛИНГЕРА И ИДРИСА ЛАОРА |