Sdílet prostřednictvím


Spojení procesu ke stanici oken

Proces automaticky vytvoří připojení ke stanici oken a desktopu při prvním volání funkce USER32 nebo GDI32, kromě funkcí stanice oken a desktopu. Systém určuje stanici okno, k níž se proces připojuje, podle následujících pravidel:

  1. Pokud proces volal funkci SetProcessWindowStation, připojí se ke stanici oken zadané v tomto volání.
  2. Pokud proces nezavolal SetProcessWindowStation, připojí se ke stanici okna zděděné z nadřazeného procesu.
  3. Pokud proces nezavolal SetProcessWindowStation a nezdědil stanici oken, systém se pokusí otevřít pro MAXIMUM_ALLOWED přístup a připojit se ke stanici oken následujícím způsobem:
    • Pokud byl název stanice oken zadán v členu lpDesktop struktury STARTUPINFO, která byla použita při vytvoření procesu, proces se připojí k určené stanici oken.
    • V opačném případě pokud proces běží v přihlašovací relaci interaktivního uživatele, proces se připojí k interaktivní okenní stanici.
    • Pokud proces běží v neinteraktivní přihlašovací relaci, název stanice okna se vytvoří na základě identifikátoru přihlašovací relace a provede se pokus o otevření této stanice oken. Pokud operace otevření selže, protože tato stanice oken neexistuje, systém se pokusí vytvořit stanici oken a výchozí plochu.

Stanice oken přiřazená během tohoto procesu připojení nelze zavřít voláním funkce CloseWindowStation.

Když se proces připojuje ke stanici oken, systém prohledá tabulku popisovačů procesu pro zděděné popisovače. Systém používá první úchyt stanice oken, který najde. Pokud chcete, aby se podřízený proces připojil ke zděděné stanici oken, musíte zajistit, aby byl pouze požadovaný popisovač děditelný. Pokud podřízený proces zdědí více popisovačů stanice oken, výsledky připojení stanice oken nejsou definovány.

Rukojeti ke stanici oken, které systém otevře při připojování procesu ke stanici oken, nelze dědit.

připojení vlákna k desktopové