Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

DwCreationFlags

 

Указывает дополнительные флаги, контролирующие класс приоритета и создания процесса. Могут использоваться следующие флаги в любых комбинациях, кроме особо отмеченных:

 

Значение Описание
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ЕМЕЙНЫЕ РАССТАНОВКИ: ПОДХОД Ы БЕРТА ХЕЛЛИНГЕРА И ИДРИСА ЛАОРА

mybiblioteka.su - 2015-2024 год. (0.005 сек.)