Обработка наследования
Дочерний процесс может наследовать дескриптора от родительского процесса. Наследуемый дескриптор действителен только в контексте дочернего процесса. Чтобы дочерний процесс мог наследовать открытые дескрипторы от родительского процесса, выполните следующие действия.
- Создайте дескриптор с элементом bInheritHandle структуры SECURITY_ATTRIBUTES , который имеет значение TRUE.
- Создайте дочерний процесс с помощью функции CreateProcess с параметром bInheritHandles , равным TRUE.
Функция DuplicateHandle дублирует дескриптор для использования в текущем или другом процессе. Если приложение дублирует один из своих дескрипторов для другого процесса, повторяющийся дескриптор действителен только в контексте другого процесса.
Повторяющийся или унаследованный дескриптор является уникальным значением, но он ссылается на тот же объект, что и исходный дескриптор. Процессы могут наследовать или дублировать дескрипторы для следующих типов объектов:
- Маркер доступа
- Устройство связи
- Входные данные консоли
- Буфер экрана консоли
- Персональный компьютер
- Directory
- Событие
- File
- Сопоставление файлов
- Задание
- Mailslot
- Mutex
- канал
- Процесс
- Раздел реестра
- Semaphore
- Розетка
- Thread
- Таймер
- Оконная станция
Все остальные объекты являются частными для процесса, создавшего их; их дескриптор объектов не может дублироваться или наследоваться.
Дополнительные сведения см. в разделе Наследование.