你了解关机的过程吗?
你了解关机的过程吗?$ V/ C6 j J( j7 A8 e) V; n
% U0 D4 ~9 X$ ?
从平常的经验可以看出,执行了关机操作后电脑不会立即断电,Windows还会有一系列的动作如关闭打开的程序等,那么从执行关机命令到最终断电是一个什么样的过程呢?
( P H! P. y9 E/ o7 }5 i1 x* K( a/ j5 O' l$ o, w' L
Windows的正常关机涉及到多个组件和多个过程。我们来看一下它的基本过程。% {6 N1 ~( e5 y7 u
, `0 c) e+ a3 F( X& T F ①用户发起关机指令后,发起关机指令的程序会通知Windows子系统CSRSS.EXE,CSRSS.EXE收到通知后会和Winlogon.EXE做一个数据交换,接着由Winlogon.EXE通知CSRSS.EXE开始关闭系统的流程。
1 m z. Y Q r" K6 q
% {- F* f7 `- T* G" C3 | ②CSRSS.EXE收到Winlogon.EXE的通知后,会依次查询拥有顶层窗口的用户进程,让这些用户进程退出。如果某一个用户进程在一个默认的超时时间5000毫秒(可以通过修改注册表键值HKEY_CURRENT_USERControl PanelDesktop HungAppTimeout设定超时时间)内没有退出的话,Windows会显示一个结束任务对话框用于询问用户是否结束这个任务。默认情况下这个对话框会一直显示而不会自动关闭。
1 J7 T) T, d* M2 x' g% U- e* o ~9 X3 F% G1 ^6 X
对于控制台程序来说,基本情况类似,只不过Windows使用HKEY_CURRENT_USERControl PanelDesktop WaitToKillAppTimeout来设置超时时间。
4 b% f( K8 e6 K2 d8 D4 d* x4 o: c2 g- i! B
③接着是轮到终止系统进程了。系统进程包括SMSS.EXE、Winlogon.EXE、Lsass.EXE等。Windows在终止系统进程的时候并不像终止用户进程那样如果无法在规定时间内终止则提示用户,而是跳过这个进程,去执行下一个系统进程的终止操作。使用的超时时间和第2步使用的时间相同。 r) O) t& N) R
0 B+ r" G/ M; {+ X T& H: q Windows的正常关机涉及到多个组件和多个过程。我们来看一下它的基本过程。- H; n; o8 [( C6 M
7 t9 [ V: _& n8 p, c ①用户发起关机指令后,发起关机指令的程序会通知Windows子系统CSRSS.EXE,CSRSS.EXE收到通知后会和Winlogon.EXE做一个数据交换,接着由Winlogon.EXE通知CSRSS.EXE开始关闭系统的流程。
$ \6 }1 ^! Q: b1 R3 d9 P" v8 ]6 p0 s: J+ p, e% x4 {# h
②CSRSS.EXE收到Winlogon.EXE的通知后,会依次查询拥有顶层窗口的用户进程,让这些用户进程退出。如果某一个用户进程在一个默认的超时时间5000毫秒(可以通过修改注册表键值HKEY_CURRENT_USERControl PanelDesktop HungAppTimeout设定超时时间)内没有退出的话,Windows会显示一个结束任务对话框用于询问用户是否结束这个任务。默认情况下这个对话框会一直显示而不会自动关闭。 y i* z, A0 J( g$ m
- d$ y9 ]* H% f. o8 ^& E$ B
对于控制台程序来说,基本情况类似,只不过Windows使用HKEY_CURRENT_USERControl PanelDesktop WaitToKillAppTimeout来设置超时时间。4 F- G' P* l4 B0 z( c' C
9 c( k) d3 Y- o0 |+ p4 ?4 R0 N
③接着是轮到终止系统进程了。系统进程包括SMSS.EXE、Winlogon.EXE、Lsass.EXE等。Windows在终止系统进程的时候并不像终止用户进程那样如果无法在规定时间内终止则提示用户,而是跳过这个进程,去执行下一个系统进程的终止操作。使用的超时时间和第2步使用的时间相同。
搜索更多相关主题的帖子:
过程 关机 了解