Windows 如何休眠应用程序?

Windows 如何休眠应用程序?,windows,process,operating-system,Windows,Process,Operating System,我的问题可能看起来太奇怪了,但我想到了windows休眠的事情,我想知道是否有一种方法可以休眠特定的进程或应用程序。 i、 e:当windows从正常关机/重启状态启动时,它将正常加载所有启动程序,但除此之外,它还会加载一个特定的程序,该程序在关闭计算机之前具有以前的状态 我曾经考虑过保留内存位置,并在计算机启动时将其检索回来,但在windows环境中是否有这样做的应用程序?无法工作。进程的状态几乎从不包含在进程本身中。gui应用程序创建user32和gdi对象,这些对象存储在与桌面相关联的堆中

我的问题可能看起来太奇怪了,但我想到了windows休眠的事情,我想知道是否有一种方法可以休眠特定的进程或应用程序。 i、 e:当windows从正常关机/重启状态启动时,它将正常加载所有启动程序,但除此之外,它还会加载一个特定的程序,该程序在关闭计算机之前具有以前的状态


我曾经考虑过保留内存位置,并在计算机启动时将其检索回来,但在windows环境中是否有这样做的应用程序?

无法工作。进程的状态几乎从不包含在进程本身中。gui应用程序创建user32和gdi对象,这些对象存储在与桌面相关联的堆中。它对影响窗口管理器状态的窗口进行调用。它进行I/O调用,导致驱动程序中的代码运行。这反过来会影响内核池内的分配。将故障乘以它打开与其他进程对话的每个管道或rpc通道。和共享资源,如剪贴板


只有创建整个操作系统状态的快照才有效。

在Linux操作系统中,现在有多种解决方案:CRIU、CryoPID2、BLCR


我认为可以使用docker(适用于windows和linux),但它需要将您的应用程序预打包到docker中,这会带来一些开销。

这不太可能起作用,因为内存中引用的共享内容会移动。我能想到的最接近的方法是创建进程的完整转储,然后在重新启动后调试它,而不是作为常规程序启动它。这将允许您存储程序的状态,但您必须找到一种方法使调试会话看起来像正常启动一样。如果可能的话。不过,一般来说,序列化可能是这种休眠的正确机制。在Windows8中,会有类似OP所希望的东西,但只适用于内部核心组件(驱动程序、内核)。当系统关闭时,与用户应用程序不同的是,系统将只处于休眠状态。非常感谢您提供这些重要信息,我现在知道我真正需要的是什么。