当您选择关闭、重启或注销您的电脑时,Windows操作系统会在后台执行一系列复杂的任务。 这个流程至关重要,它确保了在硬件断电之前,您所有的工作成果和应用程序数据都得到了妥善保存。
Windows在关闭时检查登录用户
当您指示电脑关机或重启时,Windows首先会检查是否有其他用户账户处于活动状态。 这种情况通常发生在您锁定当前会话,然后使用另一个账户登录时。如果Windows检测到其他用户尚未正确注销,它会显示“其他人仍在使用此电脑”的提示。如果您强制重启,其他用户可能丢失未保存的数据。因此,最好先让其他用户登录,保存他们的工作,并在关闭前注销。
如果您确信其他用户没有需要保存的工作,可以选择“仍然关闭”。 这会强制注销其他用户的账户,并关闭所有打开的应用程序。 请注意,任何未保存的数据都将丢失。如果只有您自己登录,则不会出现此提示,Windows将直接进入下一步。
Windows通知程序保存工作并关闭
在真正结束电脑会话之前,Windows会通知所有打开的程序保存并关闭它们的工作。无论您是关闭还是重启电脑,这都是必要的步骤,注销用户也是关机过程的必要环节。具体来说,Windows会向每个打开的窗口发送WM_QUERYENDSESSION消息。它不会简单地强制关闭程序,而是通知它们保存工作并关闭。 这可能需要一些时间,这也是为什么有时关机或注销需要一段时间的原因。
程序可以通过请求用户输入来“阻止”关机过程。例如,某个程序可能有需要保存的打开文件。如果程序需要用户输入,您会看到“此应用程序正在阻止关闭”的消息。应用程序还可以使用 ShutdownBlockReasonCreate 功能显示自定义消息。
如果出现此消息,您应该点击“取消”,检查应用程序,保存数据并自行关闭。如果您确定可以放弃数据,则可以选择“仍然关闭”或“仍然退出”继续。值得注意的是,Windows会逐个关闭已准备好关闭的应用程序。所以,如果您打开了十个应用程序,只有一个阻止了关机,您在点击“取消”后只会看到那一个应用程序,其他九个已经被Windows关闭。
在Windows 10中,系统还会记住您打开的应用程序窗口,并在您下次登录电脑时尝试重新打开它们。
Windows注销用户
在通知所有打开的程序保存数据并关闭之后,Windows会注销您的账户。属于您账户的整个Windows“会话”会结束,没有任何打开的程序会继续在您的用户账户下运行。注销会触发许多个人操作,彻底退出Windows。例如,您账户的Windows注册表单元通常存储在内存中。当您注销时,它们会被保存到磁盘,下次登录时会重新加载到内存中。如果您只是注销,Windows会返回登录界面,以便您可以使用其他账户登录。如果您正在关闭或重启电脑,Windows将继续关机过程。
Windows自身关闭
在Windows完成注销所有用户后,它将开始关闭自身。Windows会通知所有系统服务和自身的进程干净地关闭,并将必要的数据保存到磁盘。具体来说,它会向任何正在运行的服务发送 SERVICE_ACCEPT_PRESHUTDOWN消息。收到警告后,服务会收到 SERVICE_ACCEPT_SHUTDOWN 消息。然后,服务有20秒的时间进行清理和关闭,否则Windows将强制关闭它们。
Windows 10还会将Windows内核的状态保存到磁盘,这有点像部分休眠。下次启动电脑时,Windows可以重新加载保存的内核,从而更快地启动,跳过较慢的硬件初始化过程。这个功能叫做“快速启动”。
Windows还会在关机过程的最后阶段应用任何可用的Windows更新。Windows在关机时、电脑启动前以及后台运行时执行不同的更新任务。
一切完成后,Windows会干净地卸载您的固态硬盘或机械硬盘,并等待“全部清除”信号,指示所有系统数据已保存到物理磁盘。这时,所有软件都已经完全关闭,所有数据都已保存到磁盘。
Windows关闭电脑
最后,Windows会向电脑发送ACPI关闭信号。 这会告诉电脑物理地关闭电源,关机过程至此结束。如果您曾使用过Windows 95,您可能还记得在ACPI关闭信号出现之前的日子。当时Windows会在这个步骤显示“现在可以安全地关闭计算机”的提示,您需要手动按下物理电源按钮。ACPI(高级配置和电源接口)标准于1996年首次发布,它允许Windows自动关闭电脑电源。
这与使用睡眠或休眠模式不同。在睡眠模式下,您的电脑将保持在低功耗状态。而在休眠模式下,电脑会将其整个系统状态保存到磁盘,并在您再次开机时恢复。