是否有任何库或软件或任何方式将 Windows 中单个进程的状态保存到文件中,然后将正在运行的进程恢复到运行状态,并且所有内存都已在以后加载?
我知道必须重新打开打开的句柄,可能必须启动线程等,但是至少可以恢复堆和单个线程堆栈吗?
我看到了这个问题,但答案都是针对 linux 的,而且大多数人都说无法做到。
我知道我可以使我所有的数据结构可序列化并自己完成,但我想知道如果没有它是否有可能。
是否有任何库或软件或任何方式将 Windows 中单个进程的状态保存到文件中,然后将正在运行的进程恢复到运行状态,并且所有内存都已在以后加载?
我知道必须重新打开打开的句柄,可能必须启动线程等,但是至少可以恢复堆和单个线程堆栈吗?
我看到了这个问题,但答案都是针对 linux 的,而且大多数人都说无法做到。
我知道我可以使我所有的数据结构可序列化并自己完成,但我想知道如果没有它是否有可能。
Raymond Chen(当谈到晦涩的 Windows 知识时,他甚至可能会踢 Jon Skeet 的屁股)说这是不可能的。
本质上,除非您的进程完全不使用系统资源(例如任何类型的句柄),否则总会有一些您无法保存和恢复的操作系统状态。
解决此问题的最实用方法是创建一个运行另一个 Windows 实例的 VM,并在其中运行您的进程:
>> •您可以使用nLite 使guest OS 尽可能轻量级。
添加到上述声明 - Windows XP 的官方轻量级版本是“XP Embedded”或“ Windows Embedded Standard ”。它是一个高度组件化的 XP 版本,可让您将 XP 映像缩小至 40 MB。
Windows 7 的“轻量级”版本是 Windows Embedded Standard 2011,目前处于测试阶段,可供下载 (connect.microsoft.com/windowsembedded)
当然,它不像 NLite 那样是免费软件。
谢谢,
斯里坎特