Дочерний процесс может наследовать несколько свойств и ресурсы от своего родительского процесса. Вы можете также и не допустить дочерний процесс к наследованию свойств от его родителя. Ниже перечисляется то, что может быть унаследовано:
· Открытые дескрипторы, возвращенные функцией CreateFile. Это включает в себя дескрипторы к файлам, буферам консольного ввода, консольным экранным буферам, именованным каналам, последовательным устройствам связи и почтовым ящикам в ядре системы.
· Открытые дескрипторы процесса, потока, мьютекса, события, семафора, именованного канала, анонимного канала и отображаемых в памяти объектов. Они возвращаются функциями CreateProcess, CreateThread, CreateMutex, CreateEvent, CreateSemaphore, CreateNamedPipe, CreatePipe и CreateFileMapping, соответственно.
· Переменные окружения.
· Текущий каталог.
· Консоль, если процесс не отсоединен или создается новая консоль. Дочерний процесс консоли также наследует стандартные дескрипторы родителя, также как и доступ к входному буферу и активному экранному буферу.
|
|
Дочерний процесс не наследует нижеследующее:
· Класс приоритета.
· Дескрипторы, возвращенные функциями LocalAlloc, GlobalAlloc, HeapCreate, и HeapAlloc.
· Псевдодескрипторы такие же, как дескрипторы, возвращенные функцией GetCurrentProcess или GetCurrentThread. Эти дескрипторы допустимы только для вызывающего процесса.
· Дескрипторы модуля динамически подключаемой библиотеки (DLL), возвращенные функцией LoadLibrary.
· Дескрипторы GDI или USER, типа HBITMAP или HMENU.