在Windows中休眠一个进程

Car*_*rra 10 windows process process-migration

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

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

我看到了这个问题,但答案都是针对linux的,大多数人都认为无法完成.

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

sno*_*h09 6

Raymond Chen(甚至可能会对Jon Skeet的屁股提起晦涩的Windows知识)说这是不可能的.

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

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

  • 您可以使用nLite使guest 虚拟机操作系统尽可能轻量级.
  • 然后,您可以使用VMWare VIX API以编程方式挂起/恢复VM.
  • 这当然会暂停客户操作系统以及您的进程,解决操作系统状态问题.

  • 谢谢你的链接。很有意思。我会考虑 VM 方法。如果来宾操作系统补丁需要重新启动,我仍然不走运。 (2认同)