Conexión de subprocesos a un escritorio
Después de que un proceso se conecte a una estación de ventana, el sistema asigna un escritorio al subproceso que realiza la conexión. El sistema determina el escritorio que se va a asignar al subproceso según las reglas siguientes:
- Si el subproceso ha llamado a la función SetThreadDesktop , se conecta al escritorio especificado.
- Si el subproceso no llamó a SetThreadDesktop, se conecta al escritorio heredado del proceso primario.
- Si el subproceso no llamó a SetThreadDesktop y no heredó un escritorio, el sistema intenta abrir para MAXIMUM_ALLOWED acceso y conectarse a un escritorio de la siguiente manera:
- Si se especificó un nombre de escritorio en el miembro lpDesktop de la estructura STARTUPINFO que se usó al crear el proceso, el subproceso se conecta al escritorio especificado.
- De lo contrario, el subproceso se conecta al escritorio predeterminado de la estación de ventana a la que se conecta el proceso.
El escritorio asignado durante este proceso de conexión no se puede cerrar llamando a la función CloseDesktop .
Cuando un proceso se conecta a un escritorio, el sistema busca identificadores heredados en la tabla de identificadores del proceso. El sistema usa el primer identificador de escritorio que encuentra. Si desea que un proceso secundario se conecte a un escritorio heredado determinado, debe asegurarse de que el único identificador deseado está marcado como heredado. Si un proceso secundario hereda varios identificadores de escritorio, los resultados de la conexión de escritorio no están definidos.
Los identificadores de un escritorio que el sistema abre al conectar un proceso a un escritorio no se pueden heredar.
Temas relacionados