BSOD help

Status
Not open for further replies.

redfish

Intelligent Metalhead
Messages
345
Location
North Shore Massachusetts
Hey guys! My mom's computer just crashed, and as I hadn't yet unchecked the auto shutdown all she saw was "DRIVER STATE POWER FAILURE".

I restarted the computer, and it acted kinda funny- froze in "repair windows" mode and then gave me a black screen in normal mode. I pressed what looked like a restart button and it brought me right to the desktop, bypassing login, windows load screen, everything.

Anyways, I looked in the event logs and found nothing about a BSOD but two driver-related errors occurring at the same time.
The first one listed issues with these two drivers: NEOFILTR_600_12875, SPBBCDrv
The second said: "Parallel port driver failed to start due to the following error: Cannot be started either because it is disabled or no enabled devices are associated with it."

Any help?
 
Bug Check 0x9F: DRIVER_POWER_STATE_FAILURE

Cause

For a description of the possible causes, see the description of each code in the Parameters section.

The errors that cause Parameter 1 to be 0x3, 0x100, or 0x101 only occur in Windows 2000. In Windows XP and later versions of Windows, these errors are superseded by Driver Verifier tests. For more information about Driver Verifier, see the Driver Verifier section of the Windows Driver Kit.

Resolution

If you are developing a device driver, the following information will help you debug certain instances of this bug check.

Debugging bug check 0x9F when Parameter 1 equals 0x3
In a kernel debugger, use the !analyze -v command to perform the initial bug check analysis. If the bug check occurs on a computer that is running Windows 7, the verbose analysis displays the address of the nt!TRIAGE_9F_POWER structure, which is in Parameter 3 (arg3).
Copy

kd>!analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time (usually 10 minutes).
Arguments:
Arg1: 00000003, A device object has been blocking an Irp for too long a time
Arg2: 857d6030, Physical Device Object of the stack
Arg3: 82b5dae0, nt!TRIAGE_9F_POWER on Win7, otherwise the Functional Device Object of the stack
Arg4: 85086008, The blocked IRP



Copy

kd>!analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time (usually 10 minutes).
Arguments:
Arg1: 00000003, A device object has been blocking an Irp for too long a time
Arg2: 857d6030, Physical Device Object of the stack
Arg3: 82b5dae0, nt!TRIAGE_9F_POWER on Win7, otherwise the Functional Device Object of the stack
Arg4: 85086008, The blocked IRP




Introduced in Windows 7, the nt!TRIAGE_9F_POWER structure provides additional bug check information that might help you determine the cause of this bug check. The structure can provide a list of all outstanding power IRPs, a list of all power IRP worker threads, and a pointer to the delayed system worker queue.
Use the dt (Display Type) command and specify the nt!TRIAGE_9F_POWER structure and the address that you found in Parameter 3 (arg3).
Copy


0: kd> dt nt!TRIAGE_9F_POWER 82b5dae0
+0x000 Signature : 0x8000
+0x002 Revision : 1
+0x004 IrpList : 0x82b78480 _LIST_ENTRY
+0x008 ThreadList : 0x82b77f28 _LIST_ENTRY
+0x00c DelayedWorkQueue : 0x82b715bc _TRIAGE_EX_WORK_QUEUE



Copy


0: kd> dt nt!TRIAGE_9F_POWER 82b5dae0
+0x000 Signature : 0x8000
+0x002 Revision : 1
+0x004 IrpList : 0x82b78480 _LIST_ENTRY
+0x008 ThreadList : 0x82b77f28 _LIST_ENTRY
+0x00c DelayedWorkQueue : 0x82b715bc _TRIAGE_EX_WORK_QUEUE




The dt (Display Type) command displays the structure. You can use various debugger commands to follow the LIST_ENTRY fields to examine the list of outstanding IRPs and the power IRP worker threads. Use the !irp command to examine the IRP that was blocked. (The address of this IRP is in Parameter 4 (arg4).)

Use the !poaction command to display the threads that handle the power operations and any allocated power IRPs.

To help you determine the cause of the error, consider the following questions: Can you find the blocked thread? When you examine the thread with the !thread debugger command, what does the thread consist of? Is there IO associated with the thread that is blocking it? What symbols are on the stack? When you examine the blocked power IRP, what do you notice? What is the PnP minor function code of the power IRP? What are the characteristics of the physical device object (PDO) driver (Parameter 2, arg2)? Is it is a miniport driver?

Debugging bug check 0x9F when Parameter 1 equals 0x4
In a kernel debugger, use the !analyze -v command to perform the initial bug check analysis. If the bug check occurs on a computer that is running Windows 7, the verbose analysis displays the address of the nt!TRIAGE_9F_PNP structure, which is in Parameter 4 (arg4).
Copy

kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time (usually 10 minutes).
Arguments:
Arg1: 00000004, The power transition timed out waiting to synchronize with the Pnp
subsystem.
Arg2: 00000258, Timeout in seconds.
Arg3: 84e01a70, The thread currently holding on to the Pnp lock.
Arg4: 82931b24, nt!TRIAGE_9F_PNP on Win7



Copy

kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time (usually 10 minutes).
Arguments:
Arg1: 00000004, The power transition timed out waiting to synchronize with the Pnp
subsystem.
Arg2: 00000258, Timeout in seconds.
Arg3: 84e01a70, The thread currently holding on to the Pnp lock.
Arg4: 82931b24, nt!TRIAGE_9F_PNP on Win7




Introduced in Windows 7, the nt!TRIAGE_9F_PNP structure provides additional bug check information that might help you determine the cause of the error. The nt!TRIAGE_9F_PNP structure provides a pointer to a structure that contains the list of dispatched (but not completed) PnP IRPs and provides a pointer to the delayed system worker queue.
Use the dt (Display Type) command and specify the nt!TRIAGE_9F_PNP structure and the address that you found in Parameter 4 (arg4).
Copy


kd> dt nt!TRIAGE_9F_PNP 82931b24
+0x000 Signature : 0x8001
+0x002 Revision : 1
+0x004 CompletionQueue : 0x82970e20 _TRIAGE_PNP_DEVICE_COMPLETION_QUEUE
+0x008 DelayedWorkQueue : 0x829455bc _TRIAGE_EX_WORK_QUEUE



Copy


kd> dt nt!TRIAGE_9F_PNP 82931b24
+0x000 Signature : 0x8001
+0x002 Revision : 1
+0x004 CompletionQueue : 0x82970e20 _TRIAGE_PNP_DEVICE_COMPLETION_QUEUE
+0x008 DelayedWorkQueue : 0x829455bc _TRIAGE_EX_WORK_QUEUE




The dt (Display Type) command displays the structure. You can use debugger commands to follow the LIST_ENTRY fields to examine the list of outstanding PnP IRPs.

To help you determine the cause of the error, consider the following questions: Is there an IRP associated with the thread? Is there any IO in the CompletionQueue? What symbols are on the stack?
 
Someone had this issue as a result of faulty anti-virus drivers, so I thought I'd try disabling the Ad-Aware. I think it worked. Haven't had another BSOD yet.
 
Status
Not open for further replies.
Back
Top Bottom