Procesar conexión a una estación de ventanas

Un proceso establece automáticamente una conexión a una estación de ventana y un escritorio cuando llama por primera vez a una función USER32 o GDI32 (aparte de la estación de ventana y las funciones de escritorio). El sistema determina la estación de ventana a la que se conecta un proceso según las reglas siguientes:

  1. Si el proceso ha llamado a la función SetProcessWindowStation , se conecta a la estación de ventana especificada en esa llamada.
  2. Si el proceso no llamó a SetProcessWindowStation, se conecta a la estación de ventana heredada del proceso primario.
  3. Si el proceso no llamó a SetProcessWindowStation y no heredó una estación de ventana, el sistema intenta abrir para MAXIMUM_ALLOWED acceso y conectarse a una estación de ventanas de la siguiente manera:
    • Si se especificó un nombre de estación de ventana en el miembro lpDesktop de la estructura STARTUPINFO que se usó cuando se creó el proceso, el proceso se conecta a la estación de ventana especificada.
    • De lo contrario, si el proceso se ejecuta en la sesión de inicio de sesión del usuario interactivo, el proceso se conecta a la estación de ventana interactiva.
    • Si el proceso se ejecuta en una sesión de inicio de sesión no interactiva, el nombre de la estación de ventana se forma en función del identificador de sesión de inicio de sesión y se intenta abrir esa estación de ventana. Si se produce un error en la operación de apertura porque esta estación de ventana no existe, el sistema intenta crear la estación de ventana y un escritorio predeterminado.

La estación de ventana asignada durante este proceso de conexión no se puede cerrar llamando a la función CloseWindowStation .

Cuando un proceso se conecta a una estación de ventanas, el sistema busca los identificadores heredados de la tabla de identificadores del proceso. El sistema usa el primer identificador de estación de ventana que encuentra. Si desea que un proceso secundario se conecte a una estación de ventana heredada determinada, debe asegurarse de que solo se marca el identificador deseado como heredado. Si un proceso secundario hereda varios identificadores de estación de ventana, los resultados de la conexión de la estación de ventanas no están definidos.

Controla una estación de ventanas que el sistema abre al conectar un proceso a una estación de ventanas no se pueden heredar.

Conexión de subprocesos a un escritorio