[SOLVED] BSOD: DRIVER_POWER_STATE_FAILURE

ansky26

Member
Joined
Feb 18, 2014
Posts
6
I started having BSOD issues (pardon the expression) out of the blue about a week ago. No major system changes that I can think of preceding it. Started by doing a full system scan with Panda, then MS Malicious Software Removal Tool, then uninstalled Panda and went to MSE. MSE found one issue---a Java based Trojan downloader---that I fixed, but the BSOD problem remained.

Just before the BSODs started, I had noticed a couple of issues. First, I could not connect any Bluetooth devices (MediaLink BT4.0 USB dongle), which I had never had a problem with before; I could remove and pair BT devices, but never connect to them. I don't really have any other USB peripherals, so I can't tell if it is a BT specific issue or a generic USB issue. The Webcam (integrated, though I assume USB based) works.

Next, I started getting the 'hardware disconnect' sound occasionally. Looking at Device Manager and ProcExp did not show any activity that coincides with the sounds, so I can't tell what it thinks it is disconnecting.

I looked through Dev Manager, including non-PNP devices. The only yellow was a missing WinPCap driver (nfp.sys); fixed that and still nothing changed. I ran memtest; in the first 8 hours, no issues, then when I checked again at about 20 hours it showed 2 errors. Nonetheless, I am not seeing the sorts of random system issues I would expect from memory issues.

Finally I installed WinDbg and started looking at the dumps. I set up the env variable for the Symbol Server, but all I get is:

Code:
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 1000009F, {4, 258, fffffa80070b5b50, fffff80000b9c3d0}

*** WARNING: Unable to verify timestamp for win32k.sys
*** ERROR: Module load completed but symbols could not be loaded for win32k.sys
Probably caused by : memory_corruption

Followup: memory_corruption

So, all of that done, I still have a broken computer and no idea why. Help, please!


  • Asus A53SD Laptop
  • Windows 7 Home Premium SP1 (64 bit)
  • OEM, original install.
  • Don't actually remember how old the system is—2 years or so?
  • Intel i7-2670QM CPU
  • Dual GPUs, Intel and nVidia.

I could not get 'perfmon /report' to run. The window shows:

Code:
[TABLE="width: 100%"]
[TR]
[TD] Error:
[/TD]
[/TR]
[TR]
[TD][/TD]
[TD] An error occured  while attempting to generate the report. [/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD]The Data Collector Set or one of its dependencies is  already in use.[/TD]
[/TR]
[/TABLE]

BSOD collection attached. Driver Verifier is running now and I don't plan on sleeping or powering down the laptop, so we'll see if it finds anything.

Thank you!
 
Patrick, I will take care of that right after I get home from work this evening. Thanks.

ETA:

So, if I read the documentation right, I run WinDBG, press CTRL+K to enter kernel debugging mode, then from the kd command line I enter the command '.dump /[fm]', right? Do you need a complete or small kernel dump?
 
Thanks!

-- Sorry for the late reply, I actually debugged this quite a bit ago but my internet went out.

The attached DMP file is of the DRIVER_POWER_STATE_FAILURE (9f) bug check.

By default, this bug check indicates that the driver is in an inconsistent or invalid power state. However, because the 1st parameter = 0x4, this implies that a power IRP has failed to synchronize with the PnP Manager.

Code:
0: kd> .bugcheck
Bugcheck code 0000009F
Arguments [COLOR=#ff0000][I][B]00000000`00000004[/B][/I][/COLOR] 00000000`00000258 fffffa80`070b5b50 fffff800`00b9c3d0

If we take a look at the call stack:


Code:
0: kd> knL
 # Child-SP          RetAddr           Call Site
00 fffff800`00b9c398 fffff800`033577e6 nt!KeBugCheckEx
01 fffff800`00b9c3a0 fffff800`0350834c nt!PnpBugcheckPowerTimeout+0x76
02 fffff800`00b9c400 fffff800`032d085c nt!PopBuildDeviceNotifyListWatchdog+0x1c
03 fffff800`00b9c430 fffff800`032d06f6 nt!KiProcessTimerDpcTable+0x6c
04 fffff800`00b9c4a0 fffff800`032d05de nt!KiProcessExpiredTimerList+0xc6
05 fffff800`00b9caf0 fffff800`032d03c7 nt!KiTimerExpiration+0x1be
06 fffff800`00b9cb90 fffff800`032bd8ca nt!KiRetireDpcList+0x277
07 fffff800`00b9cc40 00000000`00000000 nt!KiIdleLoop+0x5a

Not really much info, just a few PnP routines that call into the bugcheck eventually. No driver in the stack, etc.

Let's run !locks to see what's going on:

Code:
0: kd> !locks
**** DUMP OF ALL RESOURCE OBJECTS ****
KD: Scanning for held locks..

Resource @ nt!IopDeviceTreeLock (0xfffff800034c9ce0)    Shared 1 owning threads
    Contention Count = 35
     Threads: fffffa80070b5b50-01<*> 
KD: Scanning for held locks.

Resource @ nt!PiEngineLock (0xfffff800034c9be0)    Exclusively owned
    Contention Count = 41
     Threads: [COLOR=#ff0000][I][B]fffffa80070b5b50[/B][/I][/COLOR]-01<*> 
KD: Scanning for held locks............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
31147 total locks, 2 locks currently held

Code:
0: kd> !thread fffffa80070b5b50
THREAD fffffa80070b5b50  Cid 0004.0030  Teb: 0000000000000000 Win32Thread: 0000000000000000 WAIT: (Executive) KernelMode Non-Alertable
    fffff88003762370  NotificationEvent
IRP List:
    [COLOR=#ff0000][I][B]fffffa800d1fc730[/B][/I][/COLOR]: (0006,0430) Flags: 00060000  Mdl: fffffa800d7bd520
Not impersonating
DeviceMap                 fffff8a000008b30
Owning Process            fffffa8006f93380       Image:         System
Attached Process          N/A            Image:         N/A
Wait Start TickCount      563451         Ticks: 216 (0:00:00:03.369)
Context Switch Count      2944           IdealProcessor: 4  NoStackSwap
UserTime                  00:00:00.000
KernelTime                00:00:00.452
Win32 Start Address nt!ExpWorkerThread (0xfffff800032cf150)
Stack Init fffff88003762c70 Current fffff88003762070
Base fffff88003763000 Limit fffff8800375d000 Call 0
Priority 12 BasePriority 12 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5
Child-SP          RetAddr           : Args to Child                                                           : Call Site
fffff880`037620b0 fffff800`032bb5f2 : 00000000`00000000 fffffa80`070b5b50 00000000`00000000 00000000`00000001 : nt!KiSwapContext+0x7a
fffff880`037621f0 fffff800`032cc99f : fffffa80`0d1fcad0 00000000`00000000 fffffa80`00000000 fffff880`017b8975 : nt!KiCommitThreadWait+0x1d2
fffff880`03762280 fffff800`035e66b8 : fffffa80`0cdec700 fffff880`00000000 fffffa80`62747300 00000000`00000700 : nt!KeWaitForSingleObject+0x19f
fffff880`03762320 fffff800`035e65d6 : fffffa80`000003e6 fffffa80`08064960 00000000`00000000 00000000`000007ff : nt!FstubReadSector+0x98
fffff880`037623a0 fffff800`035e66f5 : fffffa80`0cdec8f0 fffffa80`0de3a1a0 fffff880`03762438 fffffa80`081d6010 : nt!FstubDetectPartitionStyle+0x22
fffff880`037623d0 fffff880`00f9b512 : fffffa80`0cdec8f0 fffff880`00000001 00000000`00000000 fffffa80`08064960 : nt!IoReadPartitionTableEx+0x2d
fffff880`03762400 fffff880`00fa803e : fffffa80`081d6010 00000000`00000000 fffffa80`0cdec8f0 fffffa80`0de3a1a0 : partmgr!PmGetDriveLayoutEx+0x5d2
fffff880`03762500 fffff880`00f9ec1d : 00000000`00000000 fffffa80`0de3a1a0 fffffa80`0cdec8f0 00000000`00000000 : partmgr!PmSetSystemCriticalFlag+0x2e
fffff880`03762530 fffff880`00fa832a : 00000000`00000000 fffffa80`081d6010 fffffa80`081d6010 fffffa80`0cdec7a0 : partmgr!PmStartDevice+0x1fd
fffff880`03762600 fffff800`0368218e : fffffa80`081d6010 fffffa80`0d47eae0 fffffa80`0cdec7a0 fffff880`009b3180 : partmgr!PmPnp+0x11a
fffff880`03762650 fffff800`033bc7ad : fffffa80`0ea70050 fffffa80`0d47eae0 fffff800`033c5ed0 00000000`00000000 : nt!PnpAsynchronousCall+0xce
fffff880`03762690 fffff800`03691506 : fffff800`034c99a0 fffffa80`07c2fd10 fffffa80`0d47eae0 fffffa80`07c2feb8 : nt!PnpStartDevice+0x11d
fffff880`03762750 fffff800`036917a4 : fffffa80`07c2fd10 fffffa80`07040043 fffffa80`070421e0 00000000`00000001 : nt!PnpStartDeviceNode+0x156
fffff880`037627e0 fffff800`036b4eb6 : fffffa80`07c2fd10 fffffa80`070421e0 00000000`00000002 00000000`00000000 : nt!PipProcessStartPhase1+0x74
fffff880`03762810 fffff800`036b5448 : 00000000`00000000 fffff800`033c4e76 00000000`00000000 00000000`00000000 : nt!PipProcessDevNodeTree+0x296
fffff880`03762a80 fffff800`033c8827 : 00000001`00000003 00000000`00000000 00000000`00000001 fffffa80`00000084 : nt!PiProcessReenumeration+0x98
fffff880`03762ad0 fffff800`032cf261 : fffff800`033c8500 ffffffff`80000201 fffff800`0364bc00 fffffa80`070b5b50 : nt!PnpDeviceActionWorker+0x327
fffff880`03762b70 fffff800`035622ea : 00000000`00000000 fffffa80`070b5b50 00000000`00000080 fffffa80`06f93380 : nt!ExpWorkerThread+0x111
fffff880`03762c00 fffff800`032b68e6 : fffff880`03589180 fffffa80`070b5b50 fffff880`035940c0 00000000`00000000 : nt!PspSystemThreadStartup+0x5a
fffff880`03762c40 00000000`00000000 : fffff880`03763000 fffff880`0375d000 fffff880`03762370 00000000`00000000 : nt!KxStartSystemThread+0x16

We have an IRP list, and a little bit of a more informative stack text. We can see a few partmgr routines (Partition Management system driver).

Let's go ahead and take a look at the current IRP within the thread:


Code:
0: kd> !irp fffffa800d1fc730 7
Irp is active with 12 stacks 11 is current (= 0xfffffa800d1fcad0)
 Mdl=fffffa800d7bd520: No System Buffer: Thread fffffa80070b5b50:  Irp stack trace.  
Flags = 00060000
ThreadListEntry.Flink = fffffa80070b5f40
ThreadListEntry.Blink = fffffa80070b5f40
IoStatus.Status = 00000000
IoStatus.Information = 00000000
RequestorMode = 00000000
Cancel = 00
CancelIrql = 0
ApcEnvironment = 00
UserIosb = fffff88003762360
UserEvent = fffff88003762370
Overlay.AsynchronousParameters.UserApcRoutine = 00000000
Overlay.AsynchronousParameters.UserApcContext = 00000000
Overlay.AllocationSize = 00000000 - 00000000
CancelRoutine = 00000000   
UserBuffer = 00000000
&Tail.Overlay.DeviceQueueEntry = fffffa800d1fc7a8
Tail.Overlay.Thread = fffffa80070b5b50
Tail.Overlay.AuxiliaryBuffer = 00000000
Tail.Overlay.ListEntry.Flink = 00000000
Tail.Overlay.ListEntry.Blink = 00000000
Tail.Overlay.CurrentStackLocation = fffffa800d1fcad0
Tail.Overlay.OriginalFileObject = 00000000
Tail.Apc = 00000001
Tail.CompletionKey = 00000001
     cmd  flg cl Device   File     Completion-Context
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
 [  0, 0]   0  0 00000000 00000000 00000000-00000000    

            Args: 00000000 00000000 00000000 00000000
>[  3,34]   2 e0 fffffa800dd8f060 00000000 fffff88000f9e1b0-00000000 Success Error Cancel 
           \Driver\[COLOR=#ff0000][I][B]Disk    [/B][/I][/COLOR]partmgr!PmReadWriteCompletion
            Args: 00000200 00000000 00000000 00000000
 [  3, 0]   2  0 fffffa800cdec7a0 00000000 00000000-00000000    
           \Driver\[COLOR=#ff0000][I][B]partmgr[/B][/I][/COLOR]
            Args: 4632491f2 00000000 00000000 00000000

^^ Disk.sys and partmgr.sys. Disk.sys is the PnP Disk system driver.

-- FAILURE_BUCKET_ID: X64_0x9F_4_disk_IMAGE_AmUStor.SYS

^^ ALCOR Micro SD Card Controller driver.

Code:
0: kd> lmvm AmUStor
start             end                 module name
fffff880`101ba000 fffff880`101cf000   AmUStor    (no symbols)           
    Loaded symbol image file: AmUStor.SYS
    Image path: \SystemRoot\system32\drivers\AmUStor.SYS
    Image name: AmUStor.SYS
    Timestamp:        Thu Jan 13 07:06:26 [COLOR=#ff0000][U][I][B]2011[/B][/I][/U][/COLOR]

Dated from 2011, it seems to be OEM and no update is available.

For now, I'd recommend removing the card and/or disabling it.

Regards,

Patrick
 
Thank you, Patrick. Based on your analysis, I ejected the card in the SD reader before rebooting and, voilà, I rebooted without BSOD. After reboot, the Bluetooth system initialized properly—I realized that the actual reason for the BT connect failures was that the MS BT Enumerator had not been starting up, and now it started correctly again—and my devices connected.

After that, I inserted an SD card. It showed up properly without affecting the BT subsystem. I will try rebooting both with and without ejecting to see how things work. By the way, the Asus driver update web site does show a June 2011 version of the card reader driver, so I will try that, as well.

I have two remaining questions, if you don't mind answering. First, any reason why this card reader (which I use regularly) driver has suddenly caused problems? Second, why did I get the symbols/memory corruption warning when I ran WinDBG?

Again, thanks so much for your very prompt and helpful responses!
 
My pleasure!

Thanks for the information, and to answer your questions:

First, any reason why this card reader (which I use regularly) driver has suddenly caused problems?

As you mentioned earlier in your post, the MS BT Enumerator wasn't starting properly, and this was likely a bug and/or issue caused by the card reader for a reason I am not entirely sure of (likely just a driver bug). I would update it as you mentioned there's a newer version of Asus' website.

Second, why did I get the symbols/memory corruption warning when I ran WinDBG?

There are a few things I am thinking of what you could be talking about, so could you please open the dump in your WinDbg, and paste / show me what you're talking about?

Regards,

Patrick
 
Second, why did I get the symbols/memory corruption warning when I ran WinDBG?

There are a few things I am thinking of what you could be talking about, so could you please open the dump in your WinDbg, and paste / show me what you're talking about?

Patrick,

Here's what WinDBG showed when I opened it up on my 9f BSODs (repasted from my OP):

Code:
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 1000009F, {4, 258, fffffa80070b5b50, fffff80000b9c3d0}

*** WARNING: Unable to verify timestamp for win32k.sys
*** ERROR: Module load completed but symbols could not be loaded for win32k.sys
Probably caused by : memory_corruption
 
Code:
[...]
            Args: 00000000 00000000 00000000 00000000
>[  3,34]   2 e0 fffffa800dd8f060 00000000 fffff88000f9e1b0-00000000 Success Error Cancel 
           \Driver\[COLOR=#ff0000][I][B]Disk    [/B][/I][/COLOR]partmgr!PmReadWriteCompletion
            Args: 00000200 00000000 00000000 00000000
 [  3, 0]   2  0 fffffa800cdec7a0 00000000 00000000-00000000    
           \Driver\[COLOR=#ff0000][I][B]partmgr[/B][/I][/COLOR]
            Args: 4632491f2 00000000 00000000 00000000

^^ Disk.sys and partmgr.sys. Disk.sys is the PnP Disk system driver.

-- FAILURE_BUCKET_ID: X64_0x9F_4_disk_IMAGE_AmUStor.SYS
Here can be performed one more command ;)
Code:
0: kd> !devstack fffffa800dd8f060
  !DevObj           !DrvObj            !DevExt           ObjectName
  fffffa800cdec7a0  \Driver\partmgr    fffffa800cdec8f0  
> fffffa800dd8f060  \Driver\Disk       fffffa800dd8f1b0  DR66
  fffffa800ea70050  \Driver\[B]AmUStor    [/B]fffffa800ea701a0  00000267
!DevNode fffffa8007c2fd10 :
  DeviceInstis "[B]USBSTOR[/B]\Disk&Ven_Multiple&[B]Prod_Card_Reader&[/B]Rev_1.00\058F63666433&01"
  ServiceName is "disk"
 
Indeed!

We can also run a dt nt!_DEVICE_OBJECT, and then view the _IO_TIMER data structure with dt nt!_IO_TIMER.

Welcome to Sysnative!

Regards,

Patrick
 
Good work, glad to hear everything worked out.

We are glad you took the time to register, so thank you as well!

Regards,

Patrick
 
Back
Top