假设我有一个在 Windows XP 上运行的应用程序,它是从映射的网络驱动器“启动”的。当此应用程序的执行触发页面错误并且需要从磁盘读取代码页时,假设它不在页面文件中,Windows 将转到映射的网络共享以从磁盘中读取必要的代码页还是将首次执行时它会在本地复制它吗?我意识到有不同类型的页面错误,但我特别询问必须从磁盘上的文件中读取代码的情况。在这种情况下,由于应用程序的图像存在于远程共享上,我假设页面错误处理程序必须前往网络共享以检索代码页。这个对吗?
我有一个以这种方式运行的应用程序,它似乎会定期“挂起”系统,但系统会在短时间内响应,有时只需几秒钟,在其他情况下为 10-15 分钟。该系统还安装了许多 A/V 和 DLP 产品,因此有几个 TDI 过滤器驱动程序和文件系统过滤器驱动程序似乎会增加处理页面错误的延迟,特别是如果代码必须从进程中调入存在于远程共享上的图像。
我一直在阅读 Windows Internals 并讨论了页面错误处理,但在处理远程映射驱动器时我没有看到任何提及该案例。我假设它必须到网络共享来检索必要的代码页,但我只是想确定我是对的。如果有人有其他推荐的读物,我很想听听。我目前有一个内核调试器连接到一个有问题的系统,所以我可以在行动中抓住它,但是,当然,因为我已经连接了内核调试器并且已经运行了 2 天,所以我还没有看到问题再次发生。