11

是否有任何库或软件或任何方式将 Windows 中单个进程的状态保存到文件中,然后将正在运行的进程恢复到运行状态,并且所有内存都已在以后加载?

我知道必须重新打开打开的句柄,可能必须启动线程等,但是至少可以恢复堆和单个线程堆栈吗?

我看到了这个问题,但答案都是针对 linux 的,而且大多数人都说无法做到。

我知道我可以使我所有的数据结构可序列化并自己完成,但我想知道如果没有它是否有可能。

4

2 回答 2

7

Raymond Chen(当谈到晦涩的 Windows 知识时,他甚至可能会踢 Jon Skeet 的屁股)说这是不可能的

本质上,除非您的进程完全不使用系统资源(例如任何类型的句柄),否则总会有一些您无法保存和恢复的操作系统状态。

解决此问题的最实用方法是创建一个运行另一个 Windows 实例的 VM,并在其中运行您的进程:

  • 您可以使用nLite使来宾操作系统尽可能轻量级。
  • 然后,您可以使用VMWare VIX API以编程方式挂起/恢复 VM。
  • 这当然会暂停来宾操作系统以及您的进程,从而解决操作系统状态问题。
于 2009-04-24T21:04:16.670 回答
2

>> •您可以使用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 那样是免费软件。

谢谢,

斯里坎特

于 2009-09-10T18:15:58.570 回答