Debugging Tools for Windows |
The INTERNAL_POWER_ERROR bug check has a value of 0x000000A0. This bug check indicates that the power policy manager experienced a fatal error.
The following parameters appear on the blue screen. Parameter 1 indicates the type of violation. The meaning of the other parameters depends on the value of Parameter 1.
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Cause |
---|---|---|---|---|
0x1 | 1: A device has overrun its maximum number of reference counts. 2, 3, or 4: (Windows Server 2003 and earlier only) Too many inrush power IRPs have been queued. 5: (Windows Server 2003 and earlier only) The power IRP has been sent to a passive level device object. |
Except when Parameter 2 is equal to 5, this parameter indicates the maximum number of pending IRPs that are allowed. If Parameter 2 is equal to 5, this parameter is reserved. |
Reserved | An error occurred during the handling of the power I/O request packet (IRP). |
0x2 | Reserved | Reserved | Reserved | An internal failure has occurred while attempting to process a power event. |
0x3 | The expected checksum | The actual checksum | The line number of the failure | The checksum for a hibernation context page does not match its expected checksum. |
0x4 | The expected checksum | The actual checksum | The line number of the failure | The checksum for a page about to be written to the hibernation file does not match its expected checksum. |
0x5 | Reserved | Reserved | Reserved | An unknown shutdown code has been sent to the system shutdown handler. |
0x7 | Reserved | Reserved | Reserved | An unhandled exception has occurred. |
0x8 | A fatal error occurred while processing a system power event. (See the following table for more details.) |
When Parameter 1 is0x8, a fatal error occurred while processing a system power event. In this situation, Parameter 2 indicates the cause of the error. The meaning of the other parameters depends on the value of Parameter 2.
Parameter 2 | Parameter 3 | Parameter 4 | Cause |
---|---|---|---|
0x100 | The device object | The address of the POWER_CHANNEL_SUMMARY structure (a record of device object states) | An unknown device type is being processed. |
0x101 | Exception pointer | Reserved | An unhandled exception occurred. |
0x102 | The address of the DUMP_INITIALIZATION_CONTEXT structure, which contains the information that is passed from the system to the disk dump driver during the driver's initialization | The address of the POP_HIBER_CONTEXT structure, which contains information about the state of the computer before hibernation | The hibernation working buffer size is not page-aligned. |
0x103 | The address of the POP_HIBER_CONTEXT structure | Reserved | Some working pages were not accounted for during the hibernation process. |
0x104 | The address of the POP_HIBER_CONTEXT structure | Reserved | An attempt was made to map internal hibernation memory while the internal memory structures were locked. |
0x105 | The address of the POP_HIBER_CONTEXT structure | Reserved | An attempt was made to map internal hibernation memory with an unsupported memory type flag. |
0x106 | The MDL | Reserved | A memory descriptor list (MDL) was created during the hibernation process that describes memory that is not paged-aligned. |
0x107 | The address of the POP_HIBER_CONTEXT structure | The address of the PO_MEMORY_RANGE_ARRAY structure | A data mismatch occurred in the internal hibernation data structures. |
0x108 | The address of the POP_HIBER_CONTEXT structure | Reserved | The disk subsystem failed to properly write part of the hibernation file. |
0x109 | The expected checksum | The actual checksum | The checksum for the processor state data does not match its expected checksum. |
0x10A | The address of the POP_HIBER_CONTEXT structure | The NTSTATUS failure code | The disk subsystem failed to properly write part of the hibernation file. |
0x200 | The device object | The address of the DEVICE_OBJECT_POWER_EXTENSION notification structure | An unknown device type is being checked for an idle state. |
0x300 | The device object | The IRP | An unknown status was returned from a battery power IRP. |
0x301 | The device object | The IRP | The battery has entered an unknown state. |
0x400 | The IRP stack location | The device object | A device has overrun its maximum number of reference counts. |
0x401, 0x402, or 0x403 |
The pending IRP list | The device object | (Windows Server 2003 and earlier only) Too many inrush power IRPs have been queued. |
0x404 | The IRP stack location | The device object | (Windows Server 2003 and earlier only) A power IRP has been sent to a passive level device object. |
0x500 | The IRP | The device object | An unknown status was returned from a thermal power IRP. |
For more information about the exact cause for the INTERNAL_POWER_ERROR bug check, see the tables in the Parameters section above.
The following procedures will help you debug certain instances of this bug check.
Debugging bug check 0xA0 when Parameter 1 equals 0x2If the caller is PopExceptionFilter, the first argument to this function is of type PEXCEPTION_POINTERS. Note the value of this argument.
. This command displays the structure. Note the address of the context record.
. This command sets the register context to the proper value.
This command displays the structure. Note the address of the context record.
This command sets the register context to the proper value.
This command displays the structure. Note the address of the context record.
This command sets the register context to the proper value.