创建应用程序以保存任意应用程序状态

时间:2011-01-11 23:49:13

标签: c# virtual-machine virtualization

this SuperUser question。总而言之,VM软件允许您保存任意应用程序的状态(通过保存整个VM映像)。

是否有可能为Windows编写一些允许您保存和重新加载任意应用程序状态的软件?如果是这样(并且可能是这样),它会带来什么?

如果可能的话,我希望用C#这样的高级语言来实现它。我认为如果我使用了其他东西,我需要将内存寄存器(或者可能将整个应用程序内存块转储)转储到某个地方并将其加载到某处以刷新状态。

那么我该如何构建这个东西呢?

1 个答案:

答案 0 :(得分:1)

嗯,这不太可能发生,特别是在C#中 - 解决托管代码中的低级要求几乎不可能。保存整个虚拟机的状态实际上比仅保存单个进程更容易,您所要做的就是转储整个机器内存并确保一致的磁盘映像,考虑到Virtualization软件的功能,这是非常简单的。

恢复单个进程意味着加载进程引用的所有共享对象,包括进程在内核空间中引用的任何对象,即文件/内存/互斥/任何句柄,并且整个机器/操作系统不是虚拟的,这意味着要深入研究Windows的内部......

我所说的只是:尽管有可能,努力将是巨大的,可能不值得。