我的应用程序有时从网络共享开始,一些客户在运行应用程序时报告了外部异常C0000006.根据我的谷歌研究,这“可能”与图像被分页和无法从网络重新加载有关.解决方法是告诉
Windows将完整的映像文件加载到交换中并通过设置IMAGE_FILE_NET_RUN_FROM_SWAP标志从那里运行它
我的应用程序还依赖于在运行时加载的各种.bpl和.dll库.其中只有一些可以由我改变,有些是由其他供应商提供的.如果exe设置了这个标志,那么这个库会发生什么?是否也加载到交换文件中,或者它们是否仍然被分页并在需要时重新加载?我是否还需要在库中包含此标志?
该标志仅适用于设置它的PE模块.因此,在EXE中设置标志并不意味着该EXE加载的模块受标志影响.加载程序将根据该模块中指定的PE选项处理EXE加载的每个模块(DLL,包等).
因此,您需要在驻留在网络共享上的每个模块上设置PE标志.
对于它的价值,我建议也添加IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP.