在Windows中休眠一个进程

时间:2009-04-24 19:52:19

标签: windows process process-migration

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

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

我看到了this question,但答案都是针对linux的,大多数人都认为无法完成。

我知道我可以将所有数据结构序列化并自己完成,但我想知道没有它是否可行。

2 个答案:

答案 0 :(得分:6)

Raymond Chen(当谈到模糊的Windows知识时,他甚至可能会踢Jon Skeet的屁股)it isn't possible

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

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

  • 您可以使用nLite
  • 使来宾操作系统尽可能轻量级
  • 然后,您可以使用VMWare VIX API以编程方式暂停/恢复VM。
  • 这当然会暂停来宾操作系统,以及解决操作系统状态问题的过程。

答案 1 :(得分:1)

>> •您可以使用nLite使客户操作系统尽可能轻量级。

添加到上述声明中 - Windows XP的官方轻量级版本是“XP Embedded”或“Windows Embedded Standard”。它是一个重度组件化的XP版本,可以让你将XP图像缩小到40 MB。

Windows 7的“轻量级”版本是Windows Embedded Standard 2011,目前处于测试版并可供下载(connect.microsoft.com/windowsembedded)

当然,与NLite不同,它不是免费软件。

谢谢,

SRIKANTH