INTERNAL_POWER_ERROR 参数

参数 1 表示违规类型。
其他参数的含义取决于参数 1 的值。

参数 1参数 2参数 3参数 4原因
0x11:设备已超出其最大引用计数数。
2. 3 或者 4:排队的 Influx 电源 IRP 过多。
5:电源 IRP 已发送到被动级设备对象。
6:系统未能分配必要的电源 IRP。
如果参数 2 的值为 1,则表示允许的最大引用数。
如果参数 2 的值为 2. 3 或者 4,则表示允许的最大挂起 IRP 数。
如果参数 2 具有值6. 目标设备对象。
如果参数 2 的值为 6,则指示这是系统 (0x0) 还是设备 (0x1) 电源 IRP。处理电源 I/O 请求数据包 (IRP) 期间发生错误。
0x2保留保留保留尝试处理电源事件时发生内部故障。有关详细信息,请参阅当参数 1 等于 0x2 时调试错误检查 0xA0。
0x3预期的校验和实际校验和失败的行号休眠上下文页面的校验和与其预期的校验和不匹配。
0x4预期的校验和实际校验和失败的行号即将写入休眠文件的页面的校验和与其预期的校验和不匹配。
0x5保留保留保留未知的关闭代码已发送到系统关闭处理程序。
0x7保留保留保留发生了未处理的异常。有关详细信息,请参阅当参数 1 等于 0x7 时调试错误检查 0xA0。
0x8此参数始终设置为 0x100。设备对象POWER_CHANNEL_SUMMARY处理系统电源事件时发生致命错误。
0x9状态码镜像阶段保留准备休眠文件时发生致命错误。
0xA0:在恢复时立即请求错误检查。
1:在所有不可分页设备通电后,在恢复期间请求错误检查。
2:在所有设备都已启动后,在恢复期间请求错误检查已通电。
保留保留出于调试目的而唤醒时请求了错误检查。
0xB休眠文件的大小。空间用完之前的休眠进度
0:HIBERFILE_PROGRESS_FREE_MAP
1:HIBERFILE_PROGRESS_RESUME_CONTEXT
2:HIBERFILE_PROGRESS_PROCESSOR_STATE
3:HIBERFILE_PROGRESS_SECURE_RANGES
4:GRESSHIBERHIBERHIFILE_FILE>YGRESSHIBERHIMEM_FILE>YGRESSHIBERHIMEM_FILE>YGRESSHIMEMS
4:HIBERFILE_PROGRESS_RESUME_CONTEXT
当参数 2 为 4 时,剩余内存的大小范围。休眠文件太小。
0xC状态码转储堆栈上下文保留转储堆栈初始化失败。
0xD正在转换的系统电源状态。最近到达的睡眠检查点。指向 POP_POWER_ACTION 结构的指针。系统未能及时完成电源转换。
0xF正在转换的系统电源状态。最近到达的睡眠检查点。指向当前处理请求的线程的指针。系统未能及时完成电源转换。
0xF0正在转换的系统电源状态。最近到达的睡眠检查点。指向当前处理请求的线程的指针。系统未能及时完成(挂起)电源转换。
0xF1正在转换的系统电源状态。最近到达的睡眠检查点。指向当前处理请求的线程的指针。系统未能及时完成(恢复)电源转换。
0x101保留异常指针。保留处理系统电源事件时发生未处理的异常。有关详细信息,请参阅当参数 1 等于 0x101 时调试错误检查 0xA0。
0x102保留转储_初始化_上下文POP_HIBER_CONTEXT休眠工作缓冲区大小不是页面对齐的。
0x103保留POP_HIBER_CONTEXT保留在休眠过程中,所有工作页面都没有被计算在内。
0x104保留POP_HIBER_CONTEXT保留当内部存储器结构被锁定时,试图映射内部休眠存储器。
0x105保留POP_HIBER_CONTEXT保留试图用不支持的内存类型标志映射内部休眠内存。
0x106保留内存描述符列表 (MDL)保留一个内存描述符列表是在休眠过程中创建的,它描述了非页面对齐的内存。
0x107保留POP_HIBER_CONTEXTPO_MEMORY_RANGE_ARRAY内部休眠数据结构中出现数据不匹配。
0x108保留POP_HIBER_CONTEXT保留磁盘子系统未能正确写入休眠文件的一部分。
0x109保留预期校验和实际校验和处理器状态数据的校验和与其预期的校验和不匹配。
0x10A保留POP_HIBER_CONTEXTNTSTATUS 故障代码磁盘子系统无法正确读取或者写入部分休眠文件。
0x10B保留当前的休眠进度保留尝试使用 PoSetHiberRange API 在错误的时间标记休眠启动阶段的页面。
0x10C保留提供给 API 的标志标记长度使用无效参数调用了 PoSetHiberRange API。
0x10D保留POP_HIBER_CONTEXTNTSTATUS 故障代码安全内核子系统在提供恢复数据时失败。
0x10E保留校验和不正确先前磁盘读取的校验和从休眠文件读取时,磁盘子系统返回损坏的数据。
0x10F当前系统睡眠检查点。内部错误的类型。
0:在禁用分页时写入检查点,但在 Po 禁用所有处理器上的中断之前。
1:0 以外的 CPU 在系统的中断禁用阶段尝试写入检查点sleep.
2:系统中的另一段代码正在执行 EFI 运行时服务。
保留检查点系统睡眠进度时发生内部错误。
0x110保留保留保留系统未能禁用系统睡眠状态,但必须这样做以确保数据完整性。
0x111保留保留保留驱动程序已指示用户在场,并且用户已启用调试选项以捕获调用堆栈。
0x200保留DEVICE_OBJECTDEVICE_OBJECT_POWER_EXTENSION正在检查未知设备类型的空闲状态。
0x300保留DEVICE_OBJECT内部资源计划从电池电源 IRP 返回未知状态。
0x301保留DEVICE_OBJECT内部资源计划电池已进入未知状态。
0x400保留IO_STACK_LOCATIONDEVICE_OBJECT设备已超出其最大引用计数数。
0x401保留待处理的 IRP 列表DEVICE_OBJECT排队的 Influx 电源 IRP 太多。
0x402保留待处理的 IRP 列表DEVICE_OBJECT排队的 Influx 电源 IRP 太多。
0x403保留待处理的 IRP 列表DEVICE_OBJECT排队的 Influx 电源 IRP 太多。
0x404保留IO_STACK_LOCATIONDEVICE_OBJECT电源 IRP 已发送到被动级设备对象。
0x500保留内部资源计划DEVICE_OBJECT从热功率 IRP 返回未知状态。
0x600DEVICE_OBJECT PDO保留保留驱动程序已尝试向 Power Runtime Framework 重复注册。
0x601POP_FX_DEVICE 设备PEP_DEVICE_REGISTER PEP保留没有 Power Engine 插件接受设备注册。
0x602DEVICE_NODE 设备节点睡眠计数保留设备节点休眠计数与其激活计数不匹配。
0x603POP_FX_插件工作请求类型保留Power Engine 插件提出了无效的工作请求。
0x605通知 IDPOP_FX_插件保留电源引擎插件无法接受强制设备电源管理通知。
0x606POP_FX_COMPONENTPOP_FX_COMPONENT_FLAGS组件的新条件当资源已经处于活动(或者空闲)状态时,Power Engine 插件试图将关键系统资源组件转换为活动(或者空闲)状态。
0x607POP_FX_DEVICE状态保留运行时电源管理框架设备移除锁的获取在需要成功时失败。
0x608POP_FX_COMPONENTPOP_FX_COMPONENT_FLAGS保留驱动程序已尝试在没有先前活动请求的情况下将组件转换为空闲状态。
0x609POP_FX_插件POP_FX_DEVICE重复请求类型
0:DevicePowerRequired
1:DevicePowerNotRequired
电源引擎插件已请求所需的设备电源或者不需要的设备电源,而没有相反类型的干预请求。
0x610POP_FX_插件POP_FX_DEVICE保留电源引擎插件请求了不需要的设备电源,而先前的设备电源要求请求未完成。
0x611POP_FX_插件POP_FX_DEVICE组件索引无效Power Engine 插件请求对无效组件进行操作。
0x612POP_FX_PLUGIN 动力引擎插件保留保留Power Engine 插件请求在设备通知上下文中完成另外的工作,其中 PO 没有为请求提供缓冲区。
0x613POP_FX_DEVICE组件索引操作
0:不需要完整的设备电源
1:报告设备已开机
2:完成空闲状态
当没有此类未决请求未决时,驱动程序已尝试完成请求。
0x614POP_FX_DEVICE组件索引非法参数
0: PO_FX_FLAG_BLOCKING 在 IRQL >= DISPATCH_LEVEL
1: PO_FX_FLAG_BLOCKING 和 PO_FX_FLAG_ASYNC_ONLY 都指定了
2: 组件索引无效
驱动程序已请求在具有非法参数的组件上进行活动/空闲转换。
0x615POP_FX_插件POP_FX_COMPONENT非法操作
0:组件未处于空闲状态 0
1:组件已处于活动状态
2:没有未完成的激活请求
3:未完成的空闲状态转换
Power Engine 插件非法指示组件激活已完成。
0x616POP_FX_插件POP_FX_COMPONENT非法操作
0:无效空闲状态
1:组件已处于请求状态
2:请求非零空闲状态而不通过空闲状态 0
Power Engine 插件非法请求组件空闲状态转换。
0x617POP_FX_PLUGIN 动力引擎插件UNICODE_STRING 设备 IDPEP_DEVICE_REGISTER PEP 注册处理设备注册通知时,Power Engine 插件返回了无效的接受类型。
0x618POP_FX_WORK_ORDER_WATCHDOG_INFO 工单保留保留运行时 Power Worker 线程已被阻塞太长时间。
0x619POP_FX_DEVICE 设备组件索引实际负责的子设备的 NULL 或者 DEVICE_NODE设备阻止进入最深的运行时空闲电源状态的时间过长。
0x61APOP_FX_PLUGIN 动力引擎插件POP_FX_DEVICE 设备保留Power Engine 插件提供了有关组件性能状态信息的无效信息。
0x61BPOP_FX_DEVICE 设备组件索引保留在注册设备性能状态之前,驱动程序已发出性能状态请求。
0x61CPOP_FX_DEVICE 设备组件索引无效的参数
VALUES:
0:PerfChangesCount 超过了为此组件注册的性能状态集的数量
驱动程序发出了带有无效参数的性能状态请求。
0x61DPOP_FX_DEVICE 设备组件索引未完成的请求上下文当前一个请求未完成时,驱动程序发出了性能状态请求。
0x61E保留保留保留Power Engine 插件试图在启用自动转换的同时在调试器设备上执行关键转换。
0x61FPOP_FX_DEVICE 设备协调空闲状态指标保留Power Engine 插件已尝试为非平台范围状态的协调空闲状态启用自动调试器转换。
0x620POP_FX_DEVICE 设备协调空闲状态指标保留Power Engine 插件已尝试为非平台范围状态的协调空闲状态注册 D 状态依赖项。
0x621POP_FX_DEVICE 设备组件索引协调空闲状态指标Power Engine 插件已尝试为非平台范围状态的协调空闲状态注册 F 状态依赖项。
0x622父级 POP_FX_COMPONENT子POP_FX_COMPONENT保留司机试图从 PoFx 注销未完成的家属。
0x666PPOP_PEP_ACTIVITY新活动类型
0:DevicePowerOn
1:ComponentIdleStateChange
2:ComponentActivating
3:ComponentActive
4:DevicePowerOff
5:DeviceSuspend
冲突的活动类型
0:DevicePowerOn
1:ComponentIdleStateChange
2:ComponentActivating
3:ComponentActive
4:DevicePowerOff
5:DeviceSuspend
默认的 Power Engine 插件已尝试触发与另一个活动冲突的新活动。
0x667POP_PEP_ACTIVITY活动类型
0:DevicePowerOn
1:ComponentIdleStateChange
2:ComponentActivating
3:ComponentActive
4:DevicePowerOff
5:DeviceSuspend
POP_PEP_ACTIVITY_STATUS默认 Power Engine 插件已尝试完成未运行的活动。
0x668正在更新其引用计数的 PPPM_COORDINATED_STATE。此函数观察到的无效引用计数值。正在更新平台空闲状态的掩码。默认 Power Engine 插件已尝试删除先前未受约束的平台空闲状态约束。
0x669正在更新其引用计数的 PPPM_COORDINATED_STATE。此函数观察到的无效引用计数值。保留默认 Power Engine 插件在尝试专门通知 PoFx 平台空闲状态的可用性时遇到内部一致性错误。
0x680NTSTATUS 故障代码。保留保留由于缺少或者格式错误,运行时电源框架无法解析所需的 ACPI 表。这通常是由于 BIOS 错误造成的。
0x700佩芬德尔PEP_PPM_IDLE_SELECT保留Power Engine 插件指定了无效的处理器空闲依赖项。
0x701挂起处理器的选定空闲状态的索引挂起处理器的PRCB地址挂起处理器的索引处理器无法在分配的时间间隔内完成空闲转换。这表示指定的处理器已挂起。
0x702所选处理器空闲状态的索引处理器空闲同步状态挂起处理器的PRCB地址处理器从不可中断状态唤醒,而操作系统无需通过 PEP 启动显式唤醒(使用必要的 PPM 空闲同步)。
0x703佩芬德尔PEP_PPM_QUERY_PLATFORM_STATE保留Power Engine 插件在查询平台状态通知期间指定了无效的处理器空闲依赖项。
0x704保留保留保留协调的空闲状态转换未及时完成。
0x705佩芬德尔通知标识非法更改字段的四字符标签。在内核调试器中解码标签: .formats 标签,标签包含在 < > 中。Power Engine 插件已更改传递到通知的缓冲区中的只读字段。
0x706通知标识包含非法值的字段的四字符标记。在内核调试器中解码标签: .formats 标签,标签包含在 < > 中。非法值或者索引到存在非法值的数组中Power Engine 插件在传递给通知的缓冲区的其中一个字段中返回了非法值。
0x800当前 CS 状态保留保留当系统处于连接待机状态时,显示器意外开启。
0x801显示状态改变原因更新显示状态的会话 ID保留发生了无效的显示状态转换。
0x802POWER_MONITOR_REQUEST_REASON 导致显示器关闭如果启用电源事件处理器,则为 1,否则为 0。指向 POP_PDC_IDLE_PHASE_WATCHDOG_CONTEXT 全局的指针。PDC 系统空闲阶段 (NoCsPhase) 阻止过渡到现代待机的时间比预期的要长。
0x900指向负责的电源设置回调的指针调用电源设置回调之前的 IRQL从电源设置回调返回后的 IRQL已注册的电源设置回调返回了修改后的 IRQL。这表明回调更改了 IRQL 但没有恢复返回前的原始 IRQL。
0x901DEVICE_OBJECT内部资源计划线程的 APC 禁用计数驱动程序在处理电源 IRP 时已启用/禁用内核 APC。
0x4001KE 错误子代码。
VALUES:
0x100 : (INTERNAL_POWER_ERROR_KE_PROCESSOR_ON_TIMED_OUT) 固件打开处理器电源的时间太长。
0x101 : (INTERNAL_POWER_ERROR_KE_INVALID_INTERRUPT_TARGET) 指定了无效的中断目标:0x100 指定了无效的中断目标:0x10000000000000000000000000000000000000000000000000000000000000000000 指定了无效的中断目标(INTERNAL_POWER_ERROR_KE_INVALID_INTERRUPT_POWERSET)。 ) 无法更改
中断线的目标目的地。
0x103 : (INTERNAL_POWER_ERROR_KE_IPI_REQUEST_FAILED) 在重定向中断时未能发出 IPI。
0x104 : (INTERNAL_POWER_ERROR_KE_ARCH_NOT_SUPPORTED 不支持的处理器架构。)
保留保留(INTERNAL_POWER_ERROR_KE_SUBCODE) 电源操作期间内核执行程序发生内部故障。
0xAA64错误代码PSCI 功能 ID 正在进行中可选的内部上下文相关数据AArm64 电源状态协调接口 (PSCI) 功能遇到不可恢复的严重错误。
更多: zhilu jiaocheng

解决方法

一般注意事项

在上表中,几个参数是指向结构的指针。
例如,如果参数 2 列为 DEVICE_OBJECT,则参数 2 是指向 DEVICE_OBJECT 结构的指针。
某些结构在 wdm.h 中定义,该文件包含在 Windows 驱动程序工具包中。
例如,wdm.h 中定义了以下结构。

  • EXCEPTION_POINTERS
  • DEVICE_OBJECT
  • IO_STACK_LOCATION
  • PEP_DEVICE_REGISTER

上表中出现的某些结构未在任何公共头文件中定义。
我们可以使用 dt debugger 命令查看这些结构的定义。

以下示例显示如何使用 dt 命令查看 DEVICE_OBJECT_POWER_EXTENSION 结构。

3: kd> dt nt!DEVICE_OBJECT_POWER_EXTENSION
   +0x000 IdleCount        : Uint4B
   +0x004 BusyCount        : Uint4B
   +0x008 BusyReference    : Uint4B
   +0x00c TotalBusyCount   : Uint4B
   +0x010 ConservationIdleTime : Uint4B
   +0x014 PerformanceIdleTime : Uint4B
   +0x018 DeviceObject     : Ptr64 _DEVICE_OBJECT
   +0x020 IdleList         : _LIST_ENTRY
   +0x030 IdleType         : _POP_DEVICE_IDLE_TYPE
   +0x034 IdleState        : _DEVICE_POWER_STATE
   +0x038 CurrentState     : _DEVICE_POWER_STATE
   +0x040 Volume           : _LIST_ENTRY
   +0x050 Specific         : <unnamed-tag>

以下过程将调试此错误检查的某些实例。

当参数 1 等于 0x2 时,调试错误检查 0xA0

  • 检查堆栈。查找 ntoskrnl!PopExceptionFilter 函数。此函数包含以下代码作为其第一个参数。
(error_code << 16) | _LINE_

如果调用者是 PopExceptionFilter ,则此函数的第一个参数是 PEXCEPTION_POINTERS 类型。请注意此参数的值。

  • 使用 dt(显示类型)命令并将我们在上一步中找到的值指定为参数。
dt nt!_EXCEPTION_POINTERS argument

此命令显示结构。注意上下文记录的地址。

  • 使用 .cxr(显示上下文记录)命令并将我们在上一步中找到的上下文记录指定为记录。
.cxr record

此命令将寄存器上下文设置为正确的值。

  • 使用各种命令来分析错误的来源。从 kb (Display Stack Backtrace) 开始。

当参数 1 等于 0x7 时,调试错误检查 0xA0

  • 检查堆栈。查找 ntoskrnl!PopExceptionFilter 函数。此函数的第一个参数是 PEXCEPTION_POINTERS 类型。请注意此参数的值。
  • 使用 dt(显示类型)命令并将我们在上一步中找到的值指定为参数。
dt nt!_EXCEPTION_POINTERS argument

此命令显示结构。注意上下文记录的地址。

  • 使用 .cxr(显示上下文记录)命令并将我们在上一步中找到的上下文记录指定为记录。
.cxr record

此命令将寄存器上下文设置为正确的值。

  • 使用各种命令来分析错误的来源。从 kb (Display Stack Backtrace) 开始。

当参数 1 等于 0x101 时,调试错误检查 0xA0

  • 使用 dt(显示类型)命令并将参数 3 的值指定为参数。
dt nt!_EXCEPTION_POINTERS argument

此命令显示结构。注意上下文记录的地址。

  • 使用 .cxr(显示上下文记录)命令并将我们在上一步找到的上下文记录指定为记录。
.cxr record

此命令将寄存器上下文设置为正确的值。

  • 使用各种命令来分析错误的来源。从 kb (Display Stack Backtrace) 开始。
Windows 蓝屏代码 0xA0:INTERNAL_POWER_ERROR

INTERNAL_POWER_ERROR 错误检查的值为 0x000000A0。
此错误检查表明电源策略管理器遇到了致命错误。

日期:2020-09-17 00:16:06 来源:oir作者:oir