Creazione di windows e desktop

Il sistema crea automaticamente la stazione finestra interattiva. Quando un utente interattivo accede, il sistema associa la stazione finestra interattiva alla sessione di accesso utente. Il sistema crea anche il desktop di input predefinito per la stazione finestra interattiva (Winsta0\default). I processi avviati dall'utente connesso sono associati al desktop Winsta0\default.

Un processo può usare la funzione CreateWindowStation per creare una nuova stazione finestra e la funzione CreateDesktop o CreateDesktopEx per creare un nuovo desktop. Il numero di desktop che possono essere creati è limitato dalle dimensioni dell'heap desktop di sistema. Per altre informazioni, vedere CreateDesktop.

Quando un processo non interattivo, ad esempio un'applicazione di servizio, tenta di connettersi a una stazione finestra e non esiste alcuna stazione finestra per la sessione di accesso del processo, il sistema tenta di creare una stazione finestra e un desktop per la sessione. Il nome della stazione finestra creata è basato sull'identificatore di sessione di accesso e il desktop è denominato predefinito, come descritto di seguito:

  • Se un servizio è in esecuzione nel contesto di sicurezza dell'account LocalSystem ma non include l'attributo SERVICE_INTERACTIVE_PROCESS, usa la stazione finestra e il desktop seguenti: Service-0x0-3e7$\default. Questa stazione finestra non è interattiva, quindi il servizio non può visualizzare un'interfaccia utente. Inoltre, i processi creati dal servizio non possono visualizzare un'interfaccia utente.
  • Se il servizio è in esecuzione nel contesto di sicurezza di un account utente, il nome della stazione finestra si basa sull'utente SID Service-0xZ1-Z2$, dove Z1 è la parte alta del SID di accesso e Z2 è la parte bassa del SID di accesso. Poiché un SID è univoco per la sessione di accesso, due servizi in esecuzione nello stesso contesto di sicurezza ricevono stazioni finestra univoche. Queste stazioni finestra non sono interattive.

L'elenco di controllo di accesso discrezionale (DACL) per la stazione finestra e il desktop include i diritti di accesso seguenti per l'account utente del servizio:

Stazione finestra:

WINSTA\_ACCESSCLIPBOARD WINSTA\_ACCESSGLOBALATOMS WINSTA\_CREATEDESKTOP WINSTA\_EXITWINDOWS WINSTA\_READATTRIBUTES STANDARD\_RIGHTS\_REQUIRED

Desktop:

DESKTOP\_CREATEMENU DESKTOP\_CREATEWINDOW DESKTOP\_ENUMERATE DESKTOP\_HOOKCONTROL DESKTOP\_READOBJECTS DESKTOP\_WRITEOBJECTS STANDARD\_RIGHTS\_REQUIRED