Riporto pari pari una mail di "Un trucco al giorno" da Manuali.net che credo possa interessare molti
Quando si avvia la procedura di arresto del sistema, si dà inizio a una catena di avvenimenti:
Winlogon chiama la funzione Win32 ExitWindowsEx
La funzione Win32 ExitWindowsEx invia un messaggio a Csrss
Csrss esegue un'interazione nei processi attivi e invia loro la notifica della chiusura del sistema
Per ogni processo di sistema (ad eccezione di SCM) Csrss attende un numero di secondi specificato nel valore
WaitToKillAppTimeout della chiave di registro:
HKEY_USERS\.DEFAULT\Control Panel\Desktopper attendere che il processo venga chiuso e passare al successivo.
Il valore è in millesimi di secondo ed è impostato di default a 20.000. Provate a modificarlo in 100 (un decimo di secondo).
Non è finita. A questo punto Csrss notifica a SCM la chiusura del sistema, il timeout per SCM è diverso rispetto a quello degli altri processi in quanto SCM comunica con i processi che devono eseguire operazioni di ripulitura per la chiusura.
Il valore di timeout di SCM è il valore
WaitToKillAppTimeout della chiave di registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControlIl valore è in centesimi di secondo ed è di default impostato a 2.000. Modificatelo in 10 (un decimo di secondo).
Scaduto anche questo timeout Csrss termina il processo di chiusura e spegne il computer.
Quindi ipotizzando 30 processi in esecuzione al momento della richiesta di arresto del sistema, con queste impostazioni il tempo di attesa per la chiusura del Windows non potrà essere superiore a 3,1 secondi.