关于异常STATUS_IN_PAGE_ERROR(0xC0000006)

摘要:
表示0x%p处的指令引用了位于0x%p的内存。由于0x%x的I/O错误状态,未将所需数据放入内存。设备如果读取出错,驱动程序可以返回此异常。其定义如下:////MessageId:STATUS_IN_PAGE_ERROR////MessageText:////Theinstructionat0x%preferencedmemoryat0x%p.TherequireddatawasnotplacedintomemorybecauseofanI/Oerrorstatusof0x%x.//#defineSTATUS_IN_PAGE_ERROR//winnt异常结构说明ExceptionAddress:03638c90(libcef!解决方法是通过设置IMAGE_FILE_NET_RUN_FROM_SWAP标志,告诉Windows将完整的映像文件加载到交换中并从那里运行它。该标志仅适用于设置它的PE模块。由EXE加载的每个模块将由加载程序根据该模块中指定的PE选项进行处理。

简介

STATUS_IN_PAGE_ERROR---页内故障,这是当Windows尝试从内存映射文件将数据读入RAM并发生阻止数据读取的I / O错误时发生的非常低级别的错误。当它发生在.exe时,如setup.exe程序,这是一个致命的错误,因为它无法执行无法读取的代码。表示0x%p处的指令引用了位于0x%p的内存。由于0x%x的I/O错误状态,未将所需数据放入内存。线程试图访问一个不存在的页面,并且系统无法加载页面。-即程序或内存映射文件无法调出,因为它不再可访问。设备如果读取出错,驱动程序可以返回此异常。其定义如下:

//
// MessageId: STATUS_IN_PAGE_ERROR
//
// MessageText:
//
// The instruction at 0x%p referenced memory at 0x%p. The required data was not placed into memory because of an I/O error status of 0x%x.
//
#define STATUS_IN_PAGE_ERROR ((NTSTATUS)0xC0000006L) // winnt

异常结构说明

ExceptionAddress: 03638c90 (libcef!v8::internal::CopyCharsUnsigned<unsigned char,unsigned short>+0x00000020)
ExceptionCode: c0000006 (In-page I/O error)
ExceptionFlags: 00000000
NumberParameters: 3
Parameter[0]: 00000000
Parameter[1]: 07b41828//IO操作失败的内存地址
Parameter[2]: c000000e//具体IO操作错误
Inpage operation failed at 07b41828, due to I/O error c000000e

说明

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

免责声明:文章转载自《关于异常STATUS_IN_PAGE_ERROR(0xC0000006)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VBS以管理员身份运行自身IntelliJ Idea 2019.1.3永久激活方式,JAR文件分享下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

SQL获取当天0点和23点59分方法

SELECTconvert+'00:00:00'--是将当前的时间加上小时分秒组成字符型的时间。SELECTcast--是将字符转成日期型的数据并输出。...

redis make报错

所以添加参数:makeMALLOC=libc第二种类型:makeCFLAGS=“-march=x86-64”在README中有此段。...

【NS-3学习】ns3-模拟基础:关键概念,日志,命令行参数

前言本博客首先介绍了模拟过程中使用的一些关键概念,然后介绍了有助于调试模拟脚本的常见技术:日志、命令行参数。Ns-3不是一个特殊的互联网模拟器,而是一个网络模拟器。在ns-3的仿真环境中,节点可以连接到表示数据交换通道的对象。这里,基本通信子网的抽象概念被称为信道,由C++中的channel类描述。在ns-3中,网络设备的抽象概念相当于硬件设备和软件驱动程序...

如何在linux下安装idea

[通过正式安装包安装]http://www.jetbrains.com/在官方网站上下载相应版本。终极旗舰社区版本,将其解压缩到本地对应目录,然后执行/idea.sh命令。安装后,可以在启动程序中找到创意图标。...

C#基础系列过滤器与特性

过滤器和特性结合在一起,在方法上优雅地使用过滤器。3.在过滤器中,。NETFrameWork提供了两种类型:一种是提供给ASP的筛选器。NETMVC在命名空间下使用System.Web。另一个是提供给ASP的过滤器。NETWebApi在命名空间下使用System.Web.Http.Filters。这两种类型不能混合使用,否则无法拦截并生效。...

vant上传文件到后端

Html代码&lt;Ts代码文件列表=[]/image/[a-zA-z]+/。test(file.file.type)){this.$toast(“请上传图片”);returnfalse;config).then(res=&gt;})。捕获(()=&gt;拒绝)=&gt;ts=“+newDate().getTime()).然后...