见this SuperUser question。总而言之,VM软件允许您保存任意应用程序的状态(通过保存整个VM映像)。
是否有可能为Windows编写一些允许您保存和重新加载任意应用程序状态的软件?如果是这样(并且可能是这样),它会带来什么?
如果可能的话,我希望用C#这样的高级语言来实现它。我认为如果我使用了其他东西,我需要将内存寄存器(或者可能将整个应用程序内存块转储)转储到某个地方并将其加载到某处以刷新状态。
那么我该如何构建这个东西呢?
答案 0 :(得分:1)
嗯,这不太可能发生,特别是在C#中 - 解决托管代码中的低级要求几乎不可能。保存整个虚拟机的状态实际上比仅保存单个进程更容易,您所要做的就是转储整个机器内存并确保一致的磁盘映像,考虑到Virtualization软件的功能,这是非常简单的。
恢复单个进程意味着加载进程引用的所有共享对象,包括进程在内核空间中引用的任何对象,即文件/内存/互斥/任何句柄,并且整个机器/操作系统不是虚拟的,这意味着要深入研究Windows的内部......
我所说的只是:尽管有可能,努力将是巨大的,可能不值得。