锁定可共享的内存

时间:2010-12-07 20:43:42

标签: windows memory-management

是否可以将另一个进程的整个图像分页到内存中?在几周内,我们的IT员工将取代所有“核心”网络交换机。这将打倒网络。这将在正常工作时间之后完成。在此期间,一些用户仍将使用我编写的程序。在每个用户的计算机上安装我的程序的本地副本将是一场噩梦。该程序通常从网络共享运行。程序访问网络的唯一时间是程序执行其可执行(图像)代码。如何让Windows内存管理器将整个映像加载到内存中并将其“锁定”,直到网络重新联机?

3 个答案:

答案 0 :(得分:3)

您可以使用/ swaprun:net选项重新链接您的程序:

http://msdn.microsoft.com/en-us/library/w0628bwh.aspx

答案 1 :(得分:1)

这不起作用。

Windows不一定将可执行文件的“静态”副本加载到内存中,它可以自由地随机播放块并将页面部分输入和输出。它通常在程序开始运行后从可执行文件中加载资源(图像,字符串等)。它通常也会动态加载外部库。

已编辑添加:

没有“过程的整个图像”这样的东西。例如,每个线程都有自己的分配。

也许您应该解释为什么从不同位置(即二进制文件的本地副本)运行对您不起作用。

答案 2 :(得分:1)

您可以编写它以便将其自身本地复制到临时目录,然后让它作为单独的进程运行该副本,然后自行终止(第一个副本)。我以前做过这个小小的杂耍行为,但这取决于你的程序是如何工作的,不管它是否会从temp目录运行。