Поделиться через


Обработка наследования

Дочерний процесс может наследовать дескриптора от родительского процесса. Наследуемый дескриптор действителен только в контексте дочернего процесса. Чтобы дочерний процесс мог наследовать открытые дескрипторы от родительского процесса, выполните следующие действия.

  1. Создайте дескриптор с элементом bInheritHandle структуры SECURITY_ATTRIBUTES , который имеет значение TRUE.
  2. Создайте дочерний процесс с помощью функции CreateProcess с параметром bInheritHandles , равным TRUE.

Функция DuplicateHandle дублирует дескриптор для использования в текущем или другом процессе. Если приложение дублирует один из своих дескрипторов для другого процесса, повторяющийся дескриптор действителен только в контексте другого процесса.

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

  • Маркер доступа
  • Устройство связи
  • Входные данные консоли
  • Буфер экрана консоли
  • Персональный компьютер
  • Directory
  • Событие
  • File
  • Сопоставление файлов
  • Задание
  • Mailslot
  • Mutex
  • канал
  • Процесс
  • Раздел реестра
  • Semaphore
  • Розетка
  • Thread
  • Таймер
  • Оконная станция

Все остальные объекты являются частными для процесса, создавшего их; их дескриптор объектов не может дублироваться или наследоваться.

Дополнительные сведения см. в разделе Наследование.