Нижеследующие флажки создания процесса используются функциями
CreateProcess и CreateProcessAsUser. Они могут быть установлены в любой комбинации, кроме тех, на которые обращено внимание.
Значение |
Предназначение |
CREATE_BREAKAWAY_FROM_JOB |
Windows 2000/XP: Дочерние процессы процесса, связанного с заданием, не связываются с заданием.Если вызывающий процесс не связан с заданием, этот флажок не имеет никакого действия. Если вызывающий процесс связан с заданием, задание должно установить ограничение JOB_OBJECT_LIMIT_BREAKAWAY_OK. |
CREATE_DEFAULT_ERROR_MODE |
Новый процесс не наследует режим ошибки вызывающего процесса. Вместо этого, новый процесс получает текущий заданный по умолчанию режим ошибки. Прикладная программа устанавливает текущий заданный по умолчанию режим ошибки путем вызова SetErrorMode.Этот флажок особенно полезен для многопоточных оболочек прикладной программы, которые при запуске из-за постоянных ошибок блокируются. Заданный по умолчанию характер работы для нового процесса наследует режим ошибки вызывающей программы. Установка этого флажка изменяет это заданное по умолчанию поведение. |
CREATE_NEW_CONSOLE |
Новый процесс имеет новую консоль, вместо наследования консоли родителя (это по умолчанию). За большей информацией обратитесь к статье Создание консоли. Этот флажок не может быть использован с флажком DETACHED_PROCESS. |
CREATE_NEW_PROCESS_GROUP |
Новый процесс является корневым процессом группы нового процесса. Группа процесса включает в себя все процессы, которые являются потомками этого корневого процесса. Идентификатор процесса группы нового процесса является таким же самым, что и идентификатор процесса, который возвращен в параметре lpProcessInformation. Группы процесса используются функцией GenerateConsoleCtrlEvent, чтобы дать возможность отправить сигнал CTRL+C или CTRL+BREAK группе консольных процессов. |
CREATE_NO_WINDOW |
Windows NT/2000/XP: Этот флажок допустим только тогда, когда стартует консольная программа. Если он установлен, консольная программа запускается без консольного окна.Этот флажок не может быть использован с прикладными программами, базирующимися на MS-DOS. |
CREATE_PRESERVE_CODE_AUTHZ_LEVEL |
Windows XP: Позволяет вызывающей программе исполнить код дочернего процесса, обходящий ограничения процесса, которые обычно применялись к процессу автоматически. |
CREATE_SEPARATE_WOW_VDM |
Windows NT/2000/XP: Этот флажок допустим только тогда, когда запущено 16-разрядное приложение, базирующееся на Windows. При его установке, новый процесс - запускается в отдельной Виртуальной Машине DOS (VDM). По умолчанию, все 16-разрядные программы Windows запускаются как потоки в единственной, совместно используемой VDM. Преимущество от отдельного запуска заключается в том, что аварийный отказ уничтожает только единственную VDM; любые другие программы, запущенные в отдельных VDM, продолжают функционировать нормально. К тому же, 16-разрядные прикладные программы Windows, которые запущены в отдельных VDM, имеют отдельные очереди ввода данных. Это означает то, что если одна прикладная программа в данный момент зависает, прикладные программы в отдельных VDM продолжают получать ввод данных.Недостаток отдельного запуска заключается в том, что требуется значительно большее количество памяти для тех, кто поступает таким образом. Вам следует использовать этот флажок только в том случае, если пользователь запросил, чтобы 16-разрядные прикладные программы работали в своих собственных VDM. |
CREATE_SHARED_WOW_VDM |
Windows NT/2000/XP: флажок допустим только тогда, когда запущена 16-разрядная прикладная программа базирующаяся на Windows. Если функция DefaultSeparateVDM переключает в Windows раздел WIN.INI в значение ИСТИНА (TRUE), этот флажок отменяет переключение. Новый процесс запускается в общедоступной Виртуальной Машине DOS. |
CREATE_SUSPENDED |
Первичный поток нового процесса создается в состоянии ожидания и не запускается до тех пор, пока не будет вызвана функция ResumeThread. |
CREATE_UNICODE_ENVIRONMENT |
Windows NT/2000/XP Обозначает формат параметра lpEnvironment. Если этот флажок установлен, блок конфигурации, указанный в lpEnvironment использует символы Unicode. Если сброшен, блок конфигурации использует символы ANSI. |
DEBUG_ONLY_THIS_PROCESS |
Если этот флажок не установлен и вызывающий процесс отлаживается, новый процесс становится другим процессом, отлаживаемым отладчиком вызывающего процесса. Если вызывающий процесс - не отлаживаемый процесс, никакие связанные с отладкой действия не происходят. |
DEBUG_PROCESS |
Если этот флажок установлен, вызывающий процесс рассматривается как отладчик, а новый процесс - отлаживаемый процесс. Система уведомляет отладчик обо всех событиях отладки, которые происходят в отлаживаемом процессе. Если Вы создаете процесс с этим установленным флажком, только вызывающий поток может вызывать функцию WaitForDebugEvent.Windows 95/98/Me: Этот флажок не допустим, если новый процесс - 16-разрядное приложение. |
DETACHED_PROCESS |
Для консольных процессов, новый процесс не наследует консоль своего родителя (Это по умолчанию). Новый процесс может вызвать функцию AllocConsole в более позднее время, чтобы создать новую консоль. За большей информацией обратитесь к статье Создание консоли.Этот флажок не может быть использован с флажком CREATE_NEW_CONSOLE. |