Compartir a través de


Conexión de proceso a una estación de trabajo

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 (que no sea 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 siguientes reglas:

  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 ventanas, el sistema intenta abrir con acceso MAXIMUM_ALLOWED 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 utilizada 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 ventanas 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 ventana, el sistema busca en la tabla de manijas del proceso las manijas heredadas. 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 puede heredar el identificador deseado. Si un proceso secundario hereda varios identificadores de estación de ventana, los resultados de la conexión de la estación de ventana no están definidos.

Los identificadores de una estación de ventana que el sistema abre mientras conecta un proceso a una estación de ventana no son heredables.

Conexión de hilos a un de escritorio