从远程共享进行分页

时间:2009-01-23 00:28:06

标签: networking paging share fault

假设我在Windows XP上运行了一个从映射网络驱动器“启动”的应用程序。当执行此应用程序触发页面错误并且需要从磁盘读取代码页时(假设它不在页面文件中),Windows将转到映射的网络共享以从磁盘读取必要的代码页或将它首次执行时会在本地制作一份副本吗?我意识到有不同类型的页面错误,但我特别询问必须从磁盘上的文件中读取代码的情况。在这种情况下,由于应用程序的图像存在于远程共享上,我假设页面错误处理程序必须转到网络共享以检索代码页。这是对的吗?

我有一个以这种方式运行的应用程序,它会定期“挂起”系统,但系统会在很短的时间后响应,有时只需几秒钟,在其他情况下则需要10-15分钟。该系统还安装了大量的A / V和DLP产品,因此有几个TDI过滤器驱动程序和文件系统过滤器驱动程序,这似乎会增加处理页面错误的延迟,特别是如果代码必须从进程中分页远程共享中存在的图像。

我一直在阅读Windows Internals,它讨论了页面错误处理,但在处理远程映射驱动器时我没有看到任何提及的情况。我假设它必须去网络共享来检索必要的代码页,但我只是想确定我是对的。如果有人有任何其他推荐的阅读,我很乐意听到它。我目前有一个内核调试器连接到一个有问题的系统,所以我可以在行为中捕获它,当然,因为我已经连接了内核调试器并且已经运行了2天我还没有看到问题再次发生。

1 个答案:

答案 0 :(得分:0)

我不确定问题是否正确。

  

将Windows转到映射的网络共享以从中读取必要的代码页   磁盘还是会在首次执行时在本地复制它?“

所有代码必须在本地内存中才能执行。网络映射驱动器上的页面错误将导致网络I / O获取相应的页面,该页面将加载到本地内存中然后使用。

  

在这种情况下,由于应用程序的图像存在于远程共享上,我假设是   页面错误处理程序必须转到网络共享以检索代码页。这是   正确的吗?“

叶-E-E-S-S-S。页面错误处理程序不知道驱动器是网络映射的。它将发出一个文件系统IRP。网络映射驱动程序将拦截它并将其转换为网络IRP。所以页面错误处理程序只是做正常的事情;它不知道你在后台做伏都教。

  

我有一个以这种方式运行的应用程序,并且它会定期“挂起”   系统,但系统有时会在短时间内响应   只需几秒钟,在其他情况下需要10-15分钟。这个系统也有很多A / V.   和安装在其上的DLP产品以及几个TDI过滤器驱动程序和文件系统   过滤驱动程序似乎会增加处理页面错误的延迟   特别是如果必须从远程存在的过程映像中分页代码   份额。

嗯,有这么多内核黑客攻击的东西我首先想到的是你的Windows安装很简单。 A / V的东西对Windows来说是毒药,而你似乎有很多东西插入内核 - 你要求麻烦,看来麻烦来了。

最简单的解释是最有可能的;考虑到你在这里遇到的恶意软件数量,最有可能的是Windows只是乱糟糟的。您不需要更深入的技术解释!