积极答复者
usbhub.sys蓝屏问题

问题
-
计算机系统 windows server2008 r2 standard(x64),突然蓝屏,抓取dump文件分析后应该是由于usbhub.sys文件引起的,usb的驱动程序文件。具体分析结果见后面
请帮忙确认一下是否是这个问题,如果是这个文件导致的,应该如何处理?
通过下面的分析结果,还能得出一些什么有用的信息?
dump文件分析结果如下:
PNP_DETECTED_FATAL_ERROR (ca)
PnP encountered a severe error, either as a result of a problem in a driver or
a problem in PnP itself. The first argument describes the nature of the
problem, the second argument is the address of the PDO. The other arguments
vary depending on argument 1.
Arguments:
Arg1: 0000000000000001, Duplicate PDO ---(这里请教一下 PDO 是什么东西?)
A specific instance of a driver has enumerated multiple PDOs with
identical device id and unique ids.
Arg2: fffffa800be97440, Newly reported PDO.
Arg3: fffffa800c237440, PDO of which it is a duplicate.
Arg4: 0000000000000000
Debugging Details:
------------------
BUGCHECK_STR: 0xCA_1
DEVICE_OBJECT: fffffa800be97440
DRIVER_OBJECT: fffffa8005456b50
IMAGE_NAME: usbhub.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bcc2d
MODULE_NAME: usbhub
FAULTING_MODULE: fffff88004524000 usbhub
DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT
PROCESS_NAME: System
CURRENT_IRQL: 0
LOCK_ADDRESS: fffff80001ad2400 -- (!locks fffff80001ad2400)
Resource @ nt!PiEngineLock (0xfffff80001ad2400) Exclusively owned
Contention Count = 176
Threads: fffffa80036cd680-01<*>
1 total locks, 1 locks currently held
PNP_TRIAGE:
Lock address : 0xfffff80001ad2400
Thread Count : 1
Thread address: 0xfffffa80036cd680
Thread wait : 0x5d7a082e
LAST_CONTROL_TRANSFER: from fffff80001cbb117 to fffff800018cff00
STACK_TEXT:
fffff880`0219e778 fffff800`01cbb117 : 00000000`000000ca 00000000`00000001 fffffa80`0be97440 fffffa80`0c237440 : nt!KeBugCheckEx
fffff880`0219e780 fffff800`01cbbef8 : fffffa80`03ea3290 fffffa80`14f13010 fffffa80`03ea3290 00000000`00000001 : nt!PiProcessNewDeviceNode+0x587
fffff880`0219e950 fffff800`01cbc438 : fffff800`01acfd80 00000000`00000000 00000000`00000001 fffff800`01b3c71c : nt!PipProcessDevNodeTree+0x2e8
fffff880`0219ebc0 fffff800`019d0347 : 00000001`00000003 00000000`00000000 00000000`00000001 00000000`00000000 : nt!PiProcessReenumeration+0x98
fffff880`0219ec10 fffff800`018dd161 : fffff800`019d0020 fffff800`01bc9501 fffffa80`036cd600 fffffa80`036cd680 : nt!PnpDeviceActionWorker+0x327
fffff880`0219ecb0 fffff800`01b73166 : 00000000`00000000 fffffa80`036cd680 00000000`00000080 fffffa80`036c0040 : nt!ExpWorkerThread+0x111
fffff880`0219ed40 fffff800`018ae486 : fffff880`01f3c180 fffffa80`036cd680 fffff880`01f470c0 00000000`00000000 : nt!PspSystemThreadStartup+0x5a
fffff880`0219ed80 00000000`00000000 : fffff880`0219f000 fffff880`02199000 fffff880`0219e9f0 00000000`00000000 : nt!KiStartSystemThread+0x16
STACK_COMMAND: kb
FOLLOWUP_NAME: MachineOwner
FAILURE_BUCKET_ID: X64_0xCA_1_IMAGE_usbhub.sys
BUCKET_ID: X64_0xCA_1_IMAGE_usbhub.sys
Followup: MachineOwner
---------
答案
-
PDO ---> Physical Device Object
Duplicate PDO ---> A specific instance of a driver has enumerated multiple PDOs with identical device ID and unique IDs.
看一下有没有资源冲突
http://msdn.microsoft.com/en-us/library/windows/hardware/ff539083(v=vs.85).aspx
- 已编辑 Finy 2012年7月25日 13:09
- 已标记为答案 Tom Zhang – MSFTModerator 2012年8月2日 1:47
全部回复
-
PDO ---> Physical Device Object
Duplicate PDO ---> A specific instance of a driver has enumerated multiple PDOs with identical device ID and unique IDs.
看一下有没有资源冲突
http://msdn.microsoft.com/en-us/library/windows/hardware/ff539083(v=vs.85).aspx
- 已编辑 Finy 2012年7月25日 13:09
- 已标记为答案 Tom Zhang – MSFTModerator 2012年8月2日 1:47
-
查看资源冲突,是需要在生成dump文件的计算机上查看,还是在dump文件中分析查看(我使用的windug工具分析的dump文件)?
我在windug(不是生成dump文件的计算机)中运行 !arbiter 1 命令后,结果如下:
kd> !arbiter 1
Could not read arbiter entry fffff8a0001ae2c0 for devnode fffffa8003719d90
Could not read arbiter entry fffff8a0001dc680 for devnode fffffa80038f9010
DEVNODE fffffa8003929750 (PCI\VEN_8086&DEV_3408&SUBSYS_330B103C&REV_13\3&33fd14ca&0&08)
Port Arbiter "PCI I/O Port (b=5)" at fffffa800393b010
Allocated ranges:
0000000000000000 - 0000000000003fff 00000000 <Not on bus>
0000000000005000 - ffffffffffffffff 00000000 <Not on bus>
Possible allocation:
< none >
DEVNODE fffffa800392e610 (PCI\VEN_8086&DEV_3A48&SUBSYS_330D103C&REV_00\3&33fd14ca&0&E4)
Port Arbiter "PCI I/O Port (b=2)" at fffffa8003941010
Allocated ranges:
0000000000000000 - 0000000000002fff 00000000 <Not on bus>
0000000000003000 - 00000000000030ff P fffffa8003942060 (hpqilo3core)
0000000000003400 - 00000000000034ff P fffffa8003942060 (hpqilo3core)
0000000000003800 - 00000000000038ff P fffffa8003942a20 (hpqilo3chif)
0000000000003c00 - 0000000000003c1f P fffffa8003943060 (usbuhci)
0000000000004000 - ffffffffffffffff 00000000 <Not on bus>
Possible allocation:
< none >
DEVNODE fffffa800392f610 (PCI\VEN_8086&DEV_244E&SUBSYS_330D103C&REV_90\3&33fd14ca&0&F0)
Port Arbiter "PCI I/O Port (b=1)" at fffffa8003944010
Allocated ranges:
0000000000000000 - 0000000000001fff 00000000 <Not on bus>
0000000000002000 - 00000000000020ff P fffffa8003949060 (ati2mtag)
0000000000003000 - ffffffffffffffff 00000000 <Not on bus>
Possible allocation:
< none >- 已编辑 莫名l 2012年7月25日 13:52
-
是使用 ! devobj XXX 命令查看吗?,在你这个帖子的前面我运行了一下 !arbiter 1 命令,结果您可以看一下。
运行该命令的结果如下,通过下面这些信息,能得出什么有用的结果呢?
4: kd> ! devobj fffffa800be97440
Device object (fffffa800be97440) is for:
USBPDO-10 \Driver\usbhub DriverObject fffffa8005456b50
Current Irp 00000000 RefCount 0 Type 00000022 Flags 00003040
Dacl fffff9a100064f51 DevExt fffffa800be97590 DevObjExt fffffa800be97f90 DevNode fffffa8014f13010
ExtensionFlags (0x00000810) DOE_START_PENDING, DOE_DEFAULT_SD_PRESENT
Characteristics (0000000000)
Device queue is not busy.4: kd> ! devobj fffffa800c237440
Device object (fffffa800c237440) is for:
USBPDO-7 \Driver\usbhub DriverObject fffffa8005456b50
Current Irp 00000000 RefCount 0 Type 00000022 Flags 00003040
Dacl fffff9a100064f51 DevExt fffffa800c237590 DevObjExt fffffa800c237f90 DevNode fffffa800a30a690
ExtensionFlags (0x00000810) DOE_START_PENDING, DOE_DEFAULT_SD_PRESENT
Characteristics (0000000000)
Device queue is not busy.
-
这些Driver方面的Debugging我也不熟,也得研究一下。
你能把你的dump share出来吗?是kernel dump吧?压缩一下弄出来吧。
此外,发生这个蓝屏的场景是什么?是否当时有USB设备插入拔出?
另,有一个已知问题看看是否符合你的场景:
Stop error code 0x000000CA (PNP_DETECTED_FATAL_ERROR) is generated on a Windows Server 2008 R2-based computer
http://support.microsoft.com/kb/980856
还有,这篇KB898446提示我们: 相同Plug and Play ID的设备,如果驱动程序在不能正常处理这种情况,会引起这种蓝屏。
http://support.microsoft.com/kb/898446
不过你现在是08 R2这么先进的系统,它的usbhub.sys不该漏了对Same ID的处理。。。但是osronline里也有说法,USB设备的ID相同,逻辑就是不处理,直接Crash,因为这是不允许发生的!
http://www.osronline.com/showThread.CFM?link=131368
Your USB devices are supposed to have unique serial numbers. Failure to meet this requirement is not supposed to cause a duplicate PDO event however.
- 已编辑 Finy 2012年7月26日 3:06
-
是使用 ! devobj XXX 命令查看吗?,在你这个帖子的前面我运行了一下 !arbiter 1 命令,结果您可以看一下。
运行该命令的结果如下,通过下面这些信息,能得出什么有用的结果呢?
4: kd> ! devobj fffffa800be97440
Device object (fffffa800be97440) is for:
USBPDO-10 \Driver\usbhub DriverObject fffffa8005456b50
Current Irp 00000000 RefCount 0 Type 00000022 Flags 00003040
Dacl fffff9a100064f51 DevExt fffffa800be97590 DevObjExt fffffa800be97f90 DevNode fffffa8014f13010
ExtensionFlags (0x00000810) DOE_START_PENDING, DOE_DEFAULT_SD_PRESENT
Characteristics (0000000000)
Device queue is not busy.4: kd> ! devobj fffffa800c237440
Device object (fffffa800c237440) is for:
USBPDO-7 \Driver\usbhub DriverObject fffffa8005456b50
Current Irp 00000000 RefCount 0 Type 00000022 Flags 00003040
Dacl fffff9a100064f51 DevExt fffffa800c237590 DevObjExt fffffa800c237f90 DevNode fffffa800a30a690
ExtensionFlags (0x00000810) DOE_START_PENDING, DOE_DEFAULT_SD_PRESENT
Characteristics (0000000000)
Device queue is not busy.
来,这么看一下,把它们的DevNode的实例路径打印出来
dt _DEVICE_NODE fffffa8014f13010 instancepath
dt _DEVICE_NODE fffffa800a30a690 instancepath
你会看到这两冲突设备的UNICODE文本标识
- 已编辑 Finy 2012年7月26日 2:30
-
是 kernel dump,不是很方便将dump共享出来,不好意思。机器放在机房,当时应该是没有任何操作。该计算机也没有安装Hyper-v。
DevNode的实例路径打印结果如下,文本标识都是相同的,怎么理解?是不是在这种情况下应该是不同的才符合该问题状况?
4: kd> dt _DEVICE_NODE fffffa8014f13010 instancepath
nt!_DEVICE_NODE
+0x028 InstancePath : _UNICODE_STRING "USB\VID_04B3&PID_3025\5&12dde233&0&1"
4: kd> dt _DEVICE_NODE fffffa800a30a690 instancepath
nt!_DEVICE_NODE
+0x028 InstancePath : _UNICODE_STRING "USB\VID_04B3&PID_3025\5&12dde233&0&1"
还有,根据这两冲突设备的UNICODE文本标识,能得出什么有用的信息?能找到具体的硬件吗?
- 已编辑 莫名l 2012年7月26日 14:34
-
这就指明了特定硬件 VID_04B3&PID_3025
VID 04B3是IBM的,PID代表什么产品,我没查到,Google了一下好像是什么USB NetVista Full Width Keyboard,你看看是不是你认识的东西?
貌似这里提到了这个设备的多实例冲突问题,并提供的驱动更新:
USB NetVista Full Width Keyboard driver struggles appear relating to different instances
Soon after USB NetVista Full Width Keyboard driver troubles arise, your pc’s equilibrium is certainly jeopardized, and your system is prone to laptop or computer failures
- 已编辑 Finy 2012年7月27日 4:04