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


Подключение потока к рабочему столу

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

  1. Если поток вызвал функцию SetThreadDesktop, он подключается к указанному рабочему столу.
  2. Если поток не вызывал SetThreadDesktop, он подключается к рабочему столу, унаследованным от родительского процесса.
  3. Если поток не вызывал SetThreadDesktop и не наследовал рабочий стол, система пытается открыть MAXIMUM_ALLOWED доступ и подключиться к рабочему столу следующим образом:
    • Если имя рабочего стола было указано в lpDesktop член структуры STARTUPINFO, которая использовалась при создании процесса, поток подключается к указанному рабочему столу.
    • В противном случае поток подключается к рабочему столу по умолчанию станции окон, к которой подключен процесс.

Рабочий стол, назначенный во время этого процесса подключения, не может быть закрыт путем вызова функции CloseDesktop.

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

Обрабатывает рабочий стол, который открывается системой при подключении процесса к рабочему столу, не наследуется.

подключение процесса к станции окон