Подключение потока к рабочему столу
После подключения процесса к станции окон система назначает рабочему столу потоку, выполняя подключение. Система определяет рабочий стол для назначения потоку в соответствии со следующими правилами:
- Если поток вызвал функцию SetThreadDesktop, он подключается к указанному рабочему столу.
- Если поток не вызывал SetThreadDesktop, он подключается к рабочему столу, унаследованным от родительского процесса.
- Если поток не вызывал SetThreadDesktop и не наследовал рабочий стол, система пытается открыть MAXIMUM_ALLOWED доступ и подключиться к рабочему столу следующим образом:
- Если имя рабочего стола было указано в lpDesktop член структуры STARTUPINFO, которая использовалась при создании процесса, поток подключается к указанному рабочему столу.
- В противном случае поток подключается к рабочему столу по умолчанию станции окон, к которой подключен процесс.
Рабочий стол, назначенный во время этого процесса подключения, не может быть закрыт путем вызова функции CloseDesktop.
При подключении процесса к рабочему столу система выполняет поиск таблицы дескрипторов процесса для унаследованных дескрипторов. Система использует первый дескриптор рабочего стола, который он находит. Если требуется, чтобы дочерний процесс подключался к определенному наследуемому рабочему столу, необходимо убедиться, что только нужный дескриптор помечен как наследуемый. Если дочерний процесс наследует несколько дескрипторов рабочего стола, результаты подключения к рабочему столу не определены.
Обрабатывает рабочий стол, который открывается системой при подключении процесса к рабочему столу, не наследуется.
Связанные разделы
-
подключение процесса к станции окон