Verarbeiten der Verbindung mit einer Fenster Station
Ein Prozess stellt automatisch eine Verbindung mit einer Fenster Station und einem Desktop her, wenn er zum ersten Mal eine User32-oder gdi32-Funktion aufruft (mit Ausnahme der Fenster Station-und Desktop Funktionen). Das System bestimmt die Fenster Station, mit der ein Prozess eine Verbindung herstellt, gemäß den folgenden Regeln:
- Wenn der Prozess die Funktion " SetProcessWindowStation " aufgerufen hat, stellt er eine Verbindung mit der in diesem Aufruf angegebenen Fenster Station her.
- Wenn der Prozess SetProcessWindowStationnicht aufgerufen hat, stellt er eine Verbindung mit der Fenster Station her, die vom übergeordneten Prozess geerbt wurde.
- Wenn der Prozess SetProcessWindowStation nicht aufgerufen hat und keine Fenster Station geerbt hat, versucht das System, den maximal _ zulässigen Zugriff zu öffnen und wie folgt eine Verbindung mit einer Fenster Station herzustellen:
- Wenn ein Fenster Stationsname im lpdesktop- Member der STARTUPINFO -Struktur angegeben wurde, die beim Erstellen des Prozesses verwendet wurde, stellt der Prozess eine Verbindung mit der angegebenen Fenster Station her.
- Andernfalls stellt der Prozess eine Verbindung mit der interaktiven Fenster Station her, wenn der Prozess in der Anmelde Sitzung des interaktiven Benutzers ausgeführt wird.
- Wenn der Prozess in einer nicht interaktiven Anmelde Sitzung ausgeführt wird, wird der Name der Fenster Station basierend auf dem Anmelde Sitzungs Bezeichner erstellt, und es wird versucht, die Fenster Station zu öffnen. Wenn der Öffnungsvorgang fehlschlägt, weil diese Fenster Station nicht vorhanden ist, versucht das System, die Fenster Station und einen Standard Desktop zu erstellen.
Die während dieses Verbindungs Vorgangs zugewiesene Fenster Station kann nicht durch Aufrufen der closewindowstation -Funktion geschlossen werden.
Wenn ein Prozess eine Verbindung mit einer Fenster Station herstellt, durchsucht das System die Handle-Tabelle des Prozesses nach geerbten Handles. Das System verwendet das erste gefundene Fenster Station-handle. Wenn Sie möchten, dass ein untergeordneter Prozess eine Verbindung mit einer bestimmten geerbten Fenster Station herstellt, müssen Sie sicherstellen, dass nur das gewünschte Handle als vererbbar gekennzeichnet ist. Wenn ein untergeordneter Prozess mehrere Fenster Stations Handles erbt, sind die Ergebnisse der Fenster Stations Verbindung nicht definiert.
Behandelt eine Fenster Station, die das System öffnet, während ein Prozess mit einer Fenster Station verbunden wird, ist nicht vererbbar.
Zugehörige Themen