
GAP
首先,用户发起关机指令后,Windows子系统CSRSS.EXE会收到通知,并与Winlogon.EXE进行数据交换。Winlogon.EXE会通知CSRSS.EXE开始关闭系统的流程。
其次,在CSRSS.EXE收到Winlogon.EXE的通知后,它会依次查询拥有顶层窗口的用户进程,并让这些进程退出。如果某个用户进程在一个默认的超时时间(可以通过修改注册表键值HKEY_CURRENT_USERControl PanelDesktop HunGAPpTimeout来设定超时时间)内没有退出,Windows会显示一个结束任务对话框用于询问用户是否结束该任务。默认情况下将显示这个对话框并一直保持而不会自动关闭。对于控制台程序来说,基本情况类似,只不过Windows使用HK EY_CURRENT_USERControl PanelDesktop WAItToKillAppTimeout值来设置超时时间。

AI
完成前三个步骤后,进入了关机操作的第四个阶段,也是最后一个阶段。
最后,在Winlogon.EXE调用一个原生API函数NtShutdownSystem()来命令系统执行后面的扫尾工作。在这个阶段里面,Windows执行子系统会完成最后的关机操作,例如设备驱动在这个阶段里面完成一些驱动设定的特殊操作;也是在这个阶段,配置管理系统将被修改过的注册表数据会写入磁盘。等除了电源管理以外的全部子系统完成退出以后,电源管理完成最后的操作:如重启、关机等。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号