Bug 检查 0x77:KERNEL_STACK_INPAGE_ERROR

KERNEL_STACK_INPAGE_ERROR Bug 检查的值为 0x00000077。 此 Bug 检查表明无法将分页文件中请求的内核数据页读入内存。

重要

这篇文章适合程序员阅读。 如果您是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答

KERNEL_STACK_INPAGE_ERROR 参数

消息中列出的四个参数有两种可能的含义。

如果第一个参数为 0、1 或 2,则参数的含义如下。

参数 说明

1

0:内核数据页是从页面缓存中检索的。

1:页面是从磁盘中检索的。

2:页面是从磁盘中检索的,存储堆栈返回 SUCCESS,但 Status.Information 不等于 PAGE_SIZE。

2

出现在堆栈中签名所在位置的值。

3

0

4

内核堆栈上签名的地址

如果第一个参数是 0、1 或 2 以外的任意值,则参数的含义如下。

参数 说明

1

状态代码

2

I/O 状态代码

3

页文件编号

4

页文件中的偏移量

原因

如果第一个参数为 0 或 1,则表示未找到内核堆栈中的堆栈签名。 此错误可能是由有缺陷的硬件引起的,例如 RAM 错误。

如果第一个参数为 2,驱动程序堆栈返回页面读取的不一致状态。 例如,即使驱动程序堆栈未读取整个页面,也返回了成功状态。

如果第一个参数是 0、1 或 2 以外的任意值,则第一个参数的值是驱动程序堆栈在尝试检索内核数据页后返回的 NTSTATUS 错误代码。 可以通过 I/O 状态代码(第二个参数)确定该错误的确切原因。 一些常见状态代码包括以下内容:

  • 0xC000009A 或 STATUS_INSUFFICIENT_RESOURCES 表示缺少非分页池资源。 此状态代码表示存储堆栈中存在驱动程序错误。 (无论软件资源是否可用,存储堆栈都应该始终能够检索此数据。)

  • 0xC000009C 或 STATUS_DEVICE_DATA_ERROR 表示硬盘上有坏块(扇区)。

  • 0xC000009D 或 STATUS_DEVICE_NOT_CONNECTED 表示布线、端接有有缺陷或松动,或者控制器看不到硬盘驱动器。

  • 0xC000016A 或 STATUS_DISK_OPERATION_FAILED 表示硬盘上有坏块(扇区)。

  • 0xC0000185 或 STATUS_IO_DEVICE_ERROR 表示 SCSI 设备上的端接不当或布线有缺陷,或者两台设备尝试使用相同的 IRQ。

这些状态代码是具有特定原因的最常见状态代码。 有关可能返回的其他状态代码的详细信息,请参阅 Microsoft Windows 驱动程序工具包 (WDK) 中的 Ntstatus.h 文件。

病毒感染也会导致这种 Bug 检查。

解决方法

解决坏块问题:如果出错后可以重新启动计算机,Autochk 会自动运行并尝试映射坏扇区,以防止其再被使用。

如果 Autochk 未扫描硬盘中的错误,可以手动启动磁盘扫描程序。 在系统分区上运行 Chkdsk /f /r。 在磁盘扫描开始前,必须重新启动计算机。 如果由于错误而无法启动系统,请使用恢复控制台并运行 Chkdsk /r

警告 如果系统分区是用 FAT 文件系统进行了格式化,在使用 Scandisk 或其他基于 MS-DOS 的硬盘工具通过 MS-DOS 验证硬盘驱动器的完整性时,Windows 操作系统使用的长文件名可能会被损坏。 请始终使用与 Windows 操作系统版本匹配的 Chkdsk 版本。

解决有缺陷的硬件问题:如果 I/O 状态为 0xC0000185 并且分页文件位于 SCSI 磁盘上,请检查磁盘布线和 SCSI 终端问题。

解决 RAM 故障问题:运行系统制造商提供的硬件诊断程序,尤其是内存扫描程序。 有关这些过程的详细信息,请参阅计算机的用户手册。

检查计算机中的所有适配器卡是否已正确安置。 使用电子用品商店出售的墨迹橡皮擦或电气触点处理剂,确保适配器卡接触点干净无尘。

在事件查看器中检查系统日志以获取更多错误消息,这可能有助于识别导致错误的设备。 也可以禁用 BIOS 的内存缓存以尝试解决此错误。

确保安装了最新的 Windows Service Pack。

如果上述步骤无法解决错误,请将系统主板送到维修机构进行诊断测试。 主板上的裂缝、划痕或有缺陷的组件都可能会导致此错误。

解决感染病毒:使用任何可检查硬盘主启动记录的最新商业病毒扫描软件,检查计算机是否存在病毒。 所有 Windows 文件系统都可能被病毒感染。

另请参阅

Bug 检查 0x7A (KERNEL_DATA_INPAGE_ERROR)