![Windows 关机时的事件顺序是怎样的?](https://linux22.com/image/1595837/Windows%20%E5%85%B3%E6%9C%BA%E6%97%B6%E7%9A%84%E4%BA%8B%E4%BB%B6%E9%A1%BA%E5%BA%8F%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84%EF%BC%9F.png)
当用户通过加入域的计算机上的“开始”菜单正常关闭时,首先会发生什么:a) 尝试关闭在后台运行的应用程序或 b) 断开与服务器的连接?
我询问的原因是,当用户登录时,我们会在服务器共享上运行一个小型便携式应用程序。
关机时,除极少数用户外,所有用户的正常行为都是应用程序静默终止(它拦截 Windows 关机信号并结束)并且 PC 关机继续正常进行。
对于少数情况,对我来说很明显,网络连接已终止,并且 Windows 抛出一个带有 0xc00000c4、STATUS_UNEXPECTED_NETWORK_ERROR 的消息框,因为应用程序无法自行关闭,因为它看到它“不存在”。
那么,是否存在一系列事件,或者是,嗯,谁知道发生什么事、何时发生、以何种顺序发生?
答案1
在关机期间,Windows 只会向所有正在运行的程序发送关闭消息。未在给定的超时时间内完成的进程和服务可能会被强制终止,或者可能会提示用户做出决定。
由于关机是并行进行的,因此事件没有有序的顺序。顺序取决于每个进程终止所需的时间,并且可能进一步受到硬件性能的影响。
为了确保程序在发生这种情况之前终止,您可以创建一个关机脚本,以便有序地关闭它。使用组策略编辑器 ( gpedit.msc
) 并转到
计算机配置>Windows 设置>脚本(启动/关机)。