INTERNAL_POWER_ERROR

Code: 0xa0 (160)

As HRESULT:As NTSTATUS:

Parameters

ParameterDescription
0x1

1: A device has overrun its maximum number of reference counts.

2, 3, or 4: Too many inrush power IRPs have been queued.

5: The power IRP has been sent to a passive level device object.

6: The system has failed to allocate a necessary power IRP.

0x2Reserved
0x3The expected checksum
0x4The expected checksum
0x5Reserved
0x7Reserved
0x8This parameter is always set to 0x100.
0x9Status code
0xA

0: A bug check was requested immediately upon resuming.

1: A bug check was requested during resume after all non-pageable devices had been powered on.

2: A bug check was requested during resume after all devices had been powered on.

0xBSize of the hibernation file.
0xCStatus code
0xDThe system power state in transition.
0xFThe system power state in transition.
0xF0The system power state in transition.
0xF1The system power state in transition.

Description

The INTERNAL_POWER_ERROR bug check has a value of 0x000000A0. This bug check indicates that the power policy manager experienced a fatal error.

Important

This article is for programmers. If you're a customer who has received a blue screen error code while using your computer, see Troubleshoot blue screen errors.

Resolution

General Notes

In the preceding table, several of the parameters are pointers to structures. For example, if Parameter 2 is listed as DEVICE_OBJECT, then Parameter 2 is a pointer to a DEVICE_OBJECT structure. Some of the structures are defined in wdm.h, which is included in the Windows Driver Kit. For example, the following structures are defined in wdm.h.

Some of the structures that appear in the preceding table are not defined in any public header file. You can see the definitions of those structures by using the dt debugger command. The following example shows how to use the dt command to see the DEVICE_OBJECT_POWER_EXTENSION structure.

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>

The following procedures will help you debug certain instances of this bug check.

**Debugging bug check 0xA0 when Parameter 1 equals 0x2**
  1. Examine the stack. Look for the ntoskrnl!PopExceptionFilter function. This function contains the following code as its first argument.

        (error_code << 16) | _LINE_
    

    If the caller is PopExceptionFilter, the first argument to this function is of type PEXCEPTION_POINTERS. Note the value of this argument.

  2. Use the dt (Display Type) command and specify the value that you found in the previous step as argument.

       dt nt!_EXCEPTION_POINTERS argument 
    

    This command displays the structure. Note the address of the context record.

  3. Use the .cxr (Display Context Record) command and specify the context record that you found in the previous step as record.

       .cxr record 
    

    This command sets the register context to the proper value.

  4. Use a variety of commands to analyze the source of the error. Start with kb (Display Stack Backtrace) .
**Debugging bug check 0xA0 when Parameter 1 equals 0x7**
  1. Examine the stack. Look for the ntoskrnl!PopExceptionFilter function. The first argument to this function is of type PEXCEPTION_POINTERS. Note the value of this argument.
  2. Use the dt (Display Type) command and specify the value that you found in the previous step as argument.

       dt nt!_EXCEPTION_POINTERS argument 
    

    This command displays the structure. Note the address of the context record.

  3. Use the .cxr (Display Context Record) command and specify the context record that you found in the previous step as record.

       .cxr record 
    

    This command sets the register context to the proper value.

  4. Use a variety of commands to analyze the source of the error. Start with kb (Display Stack Backtrace) .
**Debugging bug check 0xA0 when Parameter 1 equals 0x101**
  1. Use the dt (Display Type) command and specify the value of Parameter 3 as argument.

       dt nt!_EXCEPTION_POINTERS argument 
    

    This command displays the structure. Note the address of the context record.

  2. Use the .cxr (Display Context Record) command and specify the context record that you found the previous step as record.

       .cxr record 
    

    This command sets the register context to the proper value.

  3. Use a variety of commands to analyze the source of the error. Start with kb (Display Stack Backtrace) .

    See Also

Bug Check Code Reference

Article text from the Windows driver documentation (opens in a new tab), by Microsoft, under the CC BY 4.0 (opens in a new tab) licence.

Associated Modules

ModuleCodeFound inDescription
EventCreate.exe0xa078.11011%1
KernelBase.dll0xa078.1One or more arguments are not correct.
dsreg.dll0xa01011Unable to clear the registration status from the device. Exit code: %1 Join type: %2 (%3) Tenant ID: %4 UPN: %5
hvloader.dll0xa011Partition persistence services will be unavailable.
hvservice.sys0xa010Partition persistence services will be unavailable.
kernel32.dll0xa078.11011One or more arguments are not correct.
nslookup.exe0xa078.11011user info = %1
sc.exe0xa08.1DESCRIPTION: Queries the lowest run level for a service. This setting is valid only for services of start type auto start, demand start and disabled and non plug and play (PNP) driver services. A service that has no run level setting specified will have a value of 0. USAGE: sc qrunlevel [service name]
webservices.dll0xa078.11011The system was unable to generate a unique ID.
win32k.sys0xa078.1RightOverlapChars
win32kbase.sys0xa01011RightOverlapChars
11 entries