확장 최소화

Bug Check 0xA0: INTERNAL_POWER_ERROR

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 Info If You Have Received a STOP Code

bsod

If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.

For information about how to recover from this error, see Resolving Blue Screen errors in Windows.

INTERNAL_POWER_ERROR Parameters

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 1Parameter 2Parameter 3Parameter 4Cause

0x1

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

2, 3, or 4: (Windows Server 2003, Windows XP, and Windows 2000 only) Too many inrush power IRPs have been queued.

5: (Windows Server 2003, Windows XP, and Windows 2000 only) The power IRP has been sent to a passive level device object.

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

If Parameter 2 has a value of 1, the maximum number of references allowed.

If Parameter 2 has a value of 2, 3, or 4, the maximum number of pending IRPs allowed.

If Parameter 2 has a value of 6, the target device object.

If Parameter 2 has value of 6, indicates whether this is a system (0x0) or device (0x1) power IRP.

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. For more information, see Debugging bug check 0xA0 when parameter 1 equals 0x2.

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. For more information, see Debugging bug check 0xA0 when parameter 1 equals 0x7.

0x8

This parameter is always set to 0x100.

The device object

POWER_CHANNEL_SUMMARY

A fatal error occurred while processing a system power event.

0x9

Status code

Mirroring phase

Reserved

A fatal error occured while preparing the hibernate file.

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.

Reserved

Reserved

A bug check was requested when waking for debugging purposes.

0xB

Size of the hibernation file.

Hibernation progress before running out of space

0: HIBERFILE_PROGRESS_FREE_MAP

1: HIBERFILE_PROGRESS_RESUME_CONTEXT

2: HIBERFILE_PROGRESS_PROCESSOR_STATEE

3: HIBERFILE_PROGRESS_MEMORY_RANGES

4: HIBERFILE_PROGRESS_TABLE_PAGES

5: HIBERFILE_PROGRESS_MEMORY_IMAGE

Size of the remaining memory ranges.

The hibernation file is too small.

0xC

Status code

Dump stack context

Reserved

The dump stack failed to initialize.

0x101

Reserved

Exception pointer.

Reserved

An unhandled exception occured while processing a system power event. For more information, see Debugging bug check 0xA0 when parameter 1 equals 0x101.

0x102

Reserved

DUMP_INITIALIZATION_CONTEXT

POP_HIBER_CONTEXT

The hibernation working buffer size is not page aligned.

0x103

Reserved

POP_HIBER_CONTEXT

Reserved

All working pages have failed to be accounted for during the hibernation process.

0x104

Reserved

POP_HIBER_CONTEXT

Reserved

An attempt was made to map internal hibernation memory while the internal memory structures were locked.

0x105

Reserved

POP_HIBER_CONTEXT

Reserved

An attempt was made to map internal hibernation memory with an unsupported memory type flag.

0x106

Reserved

The memory descriptor list (MDL)

Reserved

A memory descriptor list was created during the hibernation process which describes memory that is not paged-aligned.

0x107

Reserved

POP_HIBER_CONTEXT

PO_MEMORY_RANGE_ARRAY

A data mismatch has occurred in the internal hibernation data structures.

0x108

Reserved

POP_HIBER_CONTEXT

Reserved

The disk subsystem failed to properly write part of the hibernation file.

0x109

Reserved

Expected checksum

Actual checksum

The checksum for the processor state data does not match its expected checksum.

0x10A

Reserved

POP_HIBER_CONTEXT

NTSTATUS

The disk subsystem failed to properly read or write part of the hibernation file.

0x10B

Reserved

Current hibernation progress

Reserved

An attempt was made to mark pages for the boot phase of hibernation at the wrong time using the PoSetHiberRange API.

0x10C

Reserved

Flags provided to the API

Length to mark

The PoSetHiberRange API was called with invalid parameters.

0x200

Reserved

DEVICE_OBJECT

DEVICE_OBJECT_POWER_EXTENSION

An unknown device type is being checked for an idle state.

0x300

Reserved

DEVICE_OBJECT

IRP

An unknown status was returned from a battery power IRP.

0x301

Reserved

DEVICE_OBJECT

IRP

The battery has entered an unknown state.

0x400

Reserved

IO_STACK_LOCATION

DEVICE_OBJECT

A device has overrun its maximum number of reference counts.

0x401

Reserved

Pending IRP list

DEVICE_OBJECT

Too many inrush power IRPs have been queued.

0x402

Reserved

Pending IRP list

DEVICE_OBJECT

Too many inrush power IRPs have been queued.

0x403

Reserved

Pending IRP list

DEVICE_OBJECT

Too many inrush power IRPs have been queued.

0x404

Reserved

IO_STACK_LOCATION

DEVICE_OBJECT

A power IRP has been sent to a passive-level device object.

0x500

Reserved

IRP

DEVICE_OBJECT

An unknown status was returned from a thermal power IRP.

0x600

DEVICE_OBJECT PDO

Reserved

Reserved

A driver has attempted a duplicate registration with the Power Runtime Framework.

0x601

POP_FX_DEVICE device

PEP_DEVICE_REGISTER PEP

Reserved

No Power Engine Plugins accepted device registration.

0x602

DEVICE_NODE device node

Sleep count

Reserved

Device node sleep count does not match its activation count.

0x603

POP_FX_PLUGIN

Work request type

Reserved

A Power Engine Plugin made an invalid work request.

0x605

Notification ID

POP_FX_PLUGIN

Reserved

A Power Engine Plugin failed to accept mandatory device power management notification.

0x606

POP_FX_COMPONENT

POP_FX_COMPONENT_FLAGS

New condition for the component

A Power Engine Plugin attempted to transition a critical system resource component to an Active (or Idle) condition when the resource was already Active (or Idle).

0x607

POP_FX_DEVICE

NTSTATUS

Reserved

The acquisition of a runtime power management framework device-removal lock failed when it was required to succeed.

0x608

POP_FX_COMPONENT

POP_FX_COMPONENT_FLAGS

Reserved

A driver has attempted to transition a component to idle without a preceding active request.

0x609

POP_FX_PLUGIN

POP_FX_DEVICE

Duplicate Request Type

0: DevicePowerRequired

1: DevicePowerNotRequired

A Power Engine Plugin has requested either device power required or device power not required without an intervening request of the opposite type.

0x610

POP_FX_PLUGIN

POP_FX_DEVICE

Reserved

A Power Engine Plugin has requested device power not required while a previous device power required request is outstanding.

0x611

POP_FX_PLUGIN

POP_FX_DEVICE

Invalid component index

A Power Engine Plugin has requested an operation on an invalid component.

0x612

POP_FX_PLUGIN PowerEnginePlugin

Reserved

Reserved

A Power Engine Plugin has requested additional work to be done in the context of a device notification where no buffer was supplied by PO for the request.

0x613

POP_FX_DEVICE

Component index

Operation

0: Complete device power not required

1: Report device powered on

2: Complete idle condition

A driver has attempted to complete a request when no such outstanding request is pending.

0x614

POP_FX_DEVICE

Component index

Illegal parameter

0: PO_FX_FLAG_BLOCKING used at IRQL >= DISPATCH_LEVEL

1: PO_FX_FLAG_BLOCKING and PO_FX_FLAG_ASYNC_ONLY both specified

2: Invalid component index

A driver has requested an active/idle transition on a component with an illegal parameter.

0x615

POP_FX_PLUGIN

POP_FX_COMPONENT

Illegal Action

0: Component not in idle state 0

1:Component is already active

2: No outstanding activation request

3: Outstanding idle state transition

A Power Engine Plugin has illegally indicated the completion of a component activation.

0x616

POP_FX_PLUGIN

POP_FX_COMPONENT

Illegal Action

0: Invalid idle state

1: Component is already in the requested state

2: Requested a non-zero idle state without passing through idle state 0

A Power Engine Plugin has illegally requested a component idle state transition.

0x666

PPOP_PEP_ACTIVITY

New activity type

0: DevicePowerOn

1: ComponentIdleStateChange

2: ComponentActivating

3: ComponentActive

4: DevicePowerOff

5: DeviceSuspend

Conflicting activity type

0: DevicePowerOn

1: ComponentIdleStateChange

2: ComponentActivating

3: ComponentActive

4: DevicePowerOff

5: DeviceSuspend

The default Power Engine Plugin has attempted to trigger a new activity that conflicts with another activity.

0x667

POP_PEP_ACTIVITY

Activity type

0: DevicePowerOn

1: ComponentIdleStateChange

2: ComponentActivating

3: ComponentActive

4: DevicePowerOff

5: DeviceSuspend

POP_PEP_ACTIVITY_STATUS

Default Power Engine Plugin has attempted to complete an activity that is not running.

0x700

PEPHANDLE

PEP_PPM_IDLE_SELECT

Reserved

A Power Engine Plugin has specified invalid processor idle dependencies.

0x701

The index of the selected idle state of the hung processor

The PRCB address of the hung processor

The index of the hung processor

A processor was not able to complete an idle transition within the allocated interval. This indicates the specified processor is hung.

0x702

The index of the selected idle state of the processor

The idle synchronization state of the processor

The PRCB address of the hung processor

A processor woke up from a non-interruptible state without the the OS initiating an explicit wake through the PEP (using the necessary PPM idle synchronization).

 

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.

  • EXCEPTION_POINTERS
  • DEVICE_OBJECT
  • IO_STACK_LOCATION
  • PEP_DEVICE_REGISTER

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) .

 

 

Send comments about this topic to Microsoft

표시:
© 2014 Microsoft