Hi,
The attached DMP file is of the
DRIVER_POWER_STATE_FAILURE (9f) bug check.
This bug check indicates that the driver is in an inconsistent or invalid power state.
By default, the dump is faulting usbhub.sys which is not the true cause of the crash and is being driven to fault by something else. If we run an !irp on the 4th parameter of the bug check (blocked IRP address):
Code:
[ 16, 2] 0 e1 fffffa800ac9e670 00000000 fffff80002e75710-fffffa800a396160 Success Error Cancel pending
Unable to load image \SystemRoot\system32\DRIVERS\Mbm3CBus.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for Mbm3CBus.sys
*** ERROR: Module load completed but symbols could not be loaded for Mbm3CBus.sys
\Driver\Mbm3CBus nt!IopUnloadSafeCompletion
^^ This is the F3607gw Mobile Broadband Device Driver.
Running a !drvobj:
Code:
Dispatch routines:
[00] IRP_MJ_CREATE fffff88002e83f60 usbhub!UsbhGenDispatch
[01] IRP_MJ_CREATE_NAMED_PIPE fffff80002e6eb30 nt!IopInvalidDeviceRequest
[02] IRP_MJ_CLOSE fffff88002e83f60 usbhub!UsbhGenDispatch
[03] IRP_MJ_READ fffff80002e6eb30 nt!IopInvalidDeviceRequest
[04] IRP_MJ_WRITE fffff80002e6eb30 nt!IopInvalidDeviceRequest
[05] IRP_MJ_QUERY_INFORMATION fffff80002e6eb30 nt!IopInvalidDeviceRequest
[06] IRP_MJ_SET_INFORMATION fffff80002e6eb30 nt!IopInvalidDeviceRequest
[07] IRP_MJ_QUERY_EA fffff80002e6eb30 nt!IopInvalidDeviceRequest
[08] IRP_MJ_SET_EA fffff80002e6eb30 nt!IopInvalidDeviceRequest
[09] IRP_MJ_FLUSH_BUFFERS fffff80002e6eb30 nt!IopInvalidDeviceRequest
[0a] IRP_MJ_QUERY_VOLUME_INFORMATION fffff80002e6eb30 nt!IopInvalidDeviceRequest
[0b] IRP_MJ_SET_VOLUME_INFORMATION fffff80002e6eb30 nt!IopInvalidDeviceRequest
[0c] IRP_MJ_DIRECTORY_CONTROL fffff80002e6eb30 nt!IopInvalidDeviceRequest
[0d] IRP_MJ_FILE_SYSTEM_CONTROL fffff80002e6eb30 nt!IopInvalidDeviceRequest
[0e] IRP_MJ_DEVICE_CONTROL fffff88002e83f60 usbhub!UsbhGenDispatch
[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL fffff88002e83f60 usbhub!UsbhGenDispatch
[10] IRP_MJ_SHUTDOWN fffff88002ea9540 usbhub!UsbhDeviceShutdown
[11] IRP_MJ_LOCK_CONTROL fffff80002e6eb30 nt!IopInvalidDeviceRequest
[12] IRP_MJ_CLEANUP fffff80002e6eb30 nt!IopInvalidDeviceRequest
[13] IRP_MJ_CREATE_MAILSLOT fffff80002e6eb30 nt!IopInvalidDeviceRequest
[14] IRP_MJ_QUERY_SECURITY fffff80002e6eb30 nt!IopInvalidDeviceRequest
[15] IRP_MJ_SET_SECURITY fffff80002e6eb30 nt!IopInvalidDeviceRequest
[16] IRP_MJ_POWER fffff88002e83f60 usbhub!UsbhGenDispatch
[17] IRP_MJ_SYSTEM_CONTROL fffff88002e83f60 usbhub!UsbhGenDispatch
[18] IRP_MJ_DEVICE_CHANGE fffff80002e6eb30 nt!IopInvalidDeviceRequest
[19] IRP_MJ_QUERY_QUOTA fffff80002e6eb30 nt!IopInvalidDeviceRequest
[1a] IRP_MJ_SET_QUOTA fffff80002e6eb30 nt!IopInvalidDeviceRequest
[1b] IRP_MJ_PNP fffff88002e83f60 usbhub!UsbhGenDispatch
We can see a pretty fair amount of IopInvalidDeviceRequests from the dispatch routines. Most drivers specify dispatch routines to handle only a subset of possible major function codes, including create (open), read, write, device I/O control, power, Plug and Play, system control (for WMI commands), cleanup, and close. File system drivers are an example of a driver type that often fills in most or all of its dispatch entry points with functions. In contrast, a driver for a simple USB device would probably fill in only the routines needed for open, close, read, write, and sending I/O control codes. The I/O manager sets any dispatch entry points that a driver doesn’t fill to point to its own IopInvalidDeviceRequest, which completes the IRP with an error status indicating that the major function specified in the IRP is invalid for that device.
With this said, we likely have something conflicting with your Mobile Boradband here, or even possibly a hardware issue with the device itself via USB.
----------------------------------------------------------------------------------
1. Fully remove COMODO Firewall from the system as it may be causing NETBIOS conflicts.
2. If you're still crashing after the above, let's enable Driver Verifier to ensure we're not dealing with any other device drivers causing corruption:
Driver Verifier:
What is Driver Verifier?
Driver Verifier is included in Windows 8, 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows 2000, Windows XP, and Windows Server 2003 to promote stability and reliability; you can use this tool to troubleshoot driver issues. Windows kernel-mode components can cause system corruption or system failures as a result of an improperly written driver, such as an earlier version of a Windows Driver Model (WDM) driver.
Essentially, if there's a 3rd party driver believed to be at issue, enabling Driver Verifier will help flush out the rogue driver if it detects a violation.
Before enabling Driver Verifier, it is recommended to create a System Restore Point:
Vista - START | type rstrui - create a restore point
Windows 7 - START | type create | select "Create a Restore Point"
Windows 8 -
Restore Point - Create in Windows 8
How to enable Driver Verifier:
Start > type "verifier" without the quotes > Select the following options -
1. Select - "Create custom settings (for code developers)"
2. Select - "Select individual settings from a full list"
3. Check the following boxes -
- Special Pool
- Pool Tracking
- Force IRQL Checking
- Deadlock Detection
- Security Checks (Windows 7 & 8)
- DDI compliance checking (Windows 8)
- Miscellaneous Checks
4. Select - "Select driver names from a list"
5. Click on the "Provider" tab. This will sort all of the drivers by the provider.
6. Check EVERY box that is
NOT provided by Microsoft / Microsoft Corporation.
7. Click on Finish.
8. Restart.
Important information regarding Driver Verifier:
- If Driver Verifier finds a violation, the system will BSOD.
- After enabling Driver Verifier and restarting the system, depending on the culprit, if for example the driver is on start-up, you may not be able to get back into normal Windows because Driver Verifier will flag it, and as stated above, that will cause / force a BSOD.
If this happens, do
not panic, do the following:
- Boot into Safe Mode by repeatedly tapping the F8 key during boot-up.
- Once in Safe Mode - Start > type "system restore" without the quotes.
- Choose the restore point you created earlier.
If you did not set up a restore point, do not worry, you can still disable Driver Verifier to get back into normal Windows:
- Start > Search > type "cmd" without the quotes.
- To turn off Driver Verifier, type in cmd "verifier /reset" without the quotes.
・ Restart and boot into normal Windows.
How long should I keep Driver Verifier enabled for?
It varies, many experts and analysts have different recommendations. Personally, I recommend keeping it enabled for at least 24 hours. If you don't BSOD by then, disable Driver Verifier.
My system BSOD'd, where can I find the crash dumps?
They will be located in %systemroot%\Minidump
Any other questions can most likely be answered by this article:
Using Driver Verifier to identify issues with Windows drivers for advanced users
Regards,
Patrick