We tested our USB fingerprint reader with ESD gun at Vista. Almost every tests ends with BSOD. usbport.sys crashes various ways, the most typical is BUGCODE_USB_DRIVER (0xFE) with code 0x6 but we’ve seen also code 0x3 and DRIVER_IRQL_NOT_LESS_OR_EQUAL. Our driver isn’t involved, it is just loaded and OS drivers crash as a reaction to ESD.
Some of our customers use rather harsh ESD tests with their laptops. I’m affraid Vista can’t survive this kind of testing. It is real quality degradation; XP had some problems with ESD during long tests but I don’t remember BSOD.
I’d like to know if it is known problem or if I should use PSS to report it. Few examples of typical crashes:
0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
BUGCODE_USB_DRIVER (fe)
USB Driver bugcheck, first parameter is USB bugcheck code.
Arguments:
Arg1: 00000006, USB Bugcheck Code:
Arg2: 902b3b4c
Arg3: 48766544
Arg4: 00000000
Debugging Details:
DEFAULT_BUCKET_ID: VISTA_RC
BUGCHECK_STR: 0xFE
PROCESS_NAME: Idle
CURRENT_IRQL: 2
LAST_CONTROL_TRANSFER: from 878ce1f9 to 818acfcb
STACK_TEXT:
818e9bd0 878ce1f9 000000fe 00000006 902b3b4c nt!KeBugCheckEx+0x1e
818e9bec 878d0b5e 902b3b4c ffffffff 48766544 USBPORT!USBPORT_AssertSig+0x20
818e9c18 878d6f02 0201c028 2b667264 902b3b24 USBPORT!USBPORT_DereferenceDeviceHandle+0xa9
818e9c64 878d7564 8301c028 835e1008 8a2f89a0 USBPORT!USBPORT_Core_iCompleteDoneTransfer+0x6b5
818e9c94 878d1163 8301c028 39585043 8301cbe8 USBPORT!USBPORT_Core_iIrpCsqCompleteDoneTransfer+0x4f5
818e9cc0 878cf5b9 8301c028 8301cbe8 8301c002 USBPORT!USBPORT_Core_UsbIocDpc_Worker+0x122
818e9ce8 8186b17e 8301cbf4 34776478 00000000 USBPORT!USBPORT_Xdpc_Worker+0x273
818e9d50 81837abe 00000000 0000000e 00000000 nt!KiRetireDpcList+0x147
818e9d54 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x46
STACK_COMMAND: kb
FOLLOWUP_IP:
USBPORT!USBPORT_AssertSig+20
878ce1f9 5d pop ebp
SYMBOL_STACK_INDEX: 1
SYMBOL_NAME: USBPORT!USBPORT_AssertSig+20
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: USBPORT
IMAGE_NAME: USBPORT.SYS
DEBUG_FLR_IMAGE_TIMESTAMP: 4549b26d
FAILURE_BUCKET_ID: 0xFE_USBPORT!USBPORT_AssertSig+20
BUCKET_ID: 0xFE_USBPORT!USBPORT_AssertSig+20
Followup: MachineOwner
1: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
BUGCODE_USB_DRIVER (fe)
USB Driver bugcheck, first parameter is USB bugcheck code.
Arguments:
Arg1: 00000003, MINIPORT_ERROR The USB miniport driver has generated a
bugcheck. This is usually in response to catastrophic
hardware failure.
Arg2: 80862834
Arg3: 8301f180
Arg4: 00000000
Debugging Details:
CUSTOMER_CRASH_COUNT: 1
DEFAULT_BUCKET_ID: VISTA_RC
BUGCHECK_STR: 0xFE
PROCESS_NAME: upeksvr.exe
CURRENT_IRQL: 2
LAST_CONTROL_TRANSFER: from 880ed01b to 818acfcb
STACK_TEXT:
83de3c8c 880ed01b 000000fe 00000003 80862834 nt!KeBugCheckEx+0x1e
83de3cac 84f56c10 82f3b144 8a1cbfe4 10000001 USBPORT!USBPORTSVC_BugCheck+0x4c
83de3cc4 84f58aca 82f3b144 836c43bc 837e6280 usbuhci!UhciAllocTd+0x3c
83de3d10 84f58d93 82f3b144 836c43bc 001cbfe4 usbuhci!UhciMapAsyncTransferToTds+0x1fa
83de3d40 84f57030 82f3b144 836c43bc 8a1cbde4 usbuhci!UhciControlTransfer+0x1b1
83de3d64 880db653 82f3b144 836c43bc 8a1cbde4 usbuhci!UhciSubmitTransfer+0x86
83de3d8c 880db24b 82f3a002 836c4208 8a1cbd20 USBPORT!MPf_SubmitTransfer+0x67
83de3da0 880d4bd8 82f3a0e0 836c4208 8a1cbd20 USBPORT!MPx_SubmitTransfer+0x35
83de3dcc 880d6704 38496573 00000004 00000010 USBPORT!USBPORT_iSetGlobalEndpointStateTx+0x16f
83de3e00 880d6fe4 82f3a028 00000000 31627573 USBPORT!USBPORT_Core_iSubmitTransferToMiniport+0x194
83de3e6c 81b99f38 82f3a028 00000000 82f3a0e8 USBPORT!USBPORT_Core_ProcessScatterGatherList+0x660
83de3e98 81b9a116 8a09a4d0 82f3a028 82fe4920 hal!HalBuildScatterGatherList+0x1ba
83de3ec8 880d7524 82fc5ac0 82f3a028 8a14c460 hal!HalGetScatterGatherList+0x26
83de3f1c 880d056d 82f3a028 82f3aac0 00000008 USBPORT!USBPORT_Core_iMapTransfer+0x315
83de3f60 880ce5b9 82f3a028 82f3aac0 82f3a002 USBPORT!USBPORT_Core_UsbMapDpc_Worker+0x397
83de3f88 8186b17e 82f3aacc 34776478 00000000 USBPORT!USBPORT_Xdpc_Worker+0x273
83de3ff4 8183759d 8f3bf880 00000000 00000000 nt!KiRetireDpcList+0x147
83de3ff8 8f3bf880 00000000 00000000 00000000 nt!KiDispatchInterrupt+0x3d
WARNING: Frame IP not in any known module. Following frames may be wrong.
8183759d 00000000 0000001a 00c1850f bb830000 0x8f3bf880
STACK_COMMAND: kb
FOLLOWUP_IP:
usbuhci!UhciAllocTd+3c
84f56c10 b8cefaadde mov eax,0DEADFACEh
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: usbuhci!UhciAllocTd+3c
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: usbuhci
IMAGE_NAME: usbuhci.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4549b268
FAILURE_BUCKET_ID: 0xFE_usbuhci!UhciAllocTd+3c
BUCKET_ID: 0xFE_usbuhci!UhciAllocTd+3c
Followup: MachineOwner
0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If kernel debugger is available get stack backtrace.
Arguments:
Arg1: 00000000, memory referenced
Arg2: 00000002, IRQL
Arg3: 00000000, value 0 = read operation, 1 = write operation
Arg4: 8b1f4b56, address which referenced memory
Debugging Details:
READ_ADDRESS: 00000000
CURRENT_IRQL: 2
FAULTING_IP:
USBPORT!USBPORT_DereferenceDeviceHandle+a1
8b1f4b56 ff37 push dword ptr [edi]
DEFAULT_BUCKET_ID: VISTA_RC
BUGCHECK_STR: 0xD1
PROCESS_NAME: Idle
TRAP_FRAME: 818e9b88 – (.trap ffffffff818e9b88)
ErrCode = 00000000
eax=54627255 ebx=84aa9028 ecx=84b3f840 edx=00000000 esi=84aa90e8 edi=00000000
eip=8b1f4b56 esp=818e9bfc ebp=818e9c18 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010282
USBPORT!USBPORT_DereferenceDeviceHandle+0xa1:
8b1f4b56 ff37 push dword ptr [edi] ds:0023:00000000=???
Resetting default scope
LAST_CONTROL_TRANSFER: from 8b1f4b56 to 818494d4
STACK_TEXT:
818e9b88 8b1f4b56 badb0d00 00000000 85046c84 nt!KiTrap0E+0x2ac
818e9c18 8b1faf02 02aa9028 2b667264 941b6b84 USBPORT!USBPORT_DereferenceDeviceHandle+0xa1
818e9c64 8b1fb564 84aa9028 8578e498 8375b278 USBPORT!USBPORT_Core_iCompleteDoneTransfer+0x6b5
818e9c94 8b1f5163 84aa9028 39585043 84aa9be8 USBPORT!USBPORT_Core_iIrpCsqCompleteDoneTransfer+0x4f5
818e9cc0 8b1f35b9 84aa9028 84aa9be8 84aa9002 USBPORT!USBPORT_Core_UsbIocDpc_Worker+0x122
818e9ce8 8186b17e 84aa9bf4 34776478 00000000 USBPORT!USBPORT_Xdpc_Worker+0x273
818e9d50 81837abe 00000000 0000000e 00000000 nt!KiRetireDpcList+0x147
818e9d54 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x46
STACK_COMMAND: kb
FOLLOWUP_IP:
USBPORT!USBPORT_DereferenceDeviceHandle+a1
8b1f4b56 ff37 push dword ptr [edi]
SYMBOL_STACK_INDEX: 1
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: USBPORT
IMAGE_NAME: USBPORT.SYS
DEBUG_FLR_IMAGE_TIMESTAMP: 4549b26d
SYMBOL_NAME: USBPORT!USBPORT_DereferenceDeviceHandle+a1
FAILURE_BUCKET_ID: 0xD1_USBPORT!USBPORT_DereferenceDeviceHandle+a1
BUCKET_ID: 0xD1_USBPORT!USBPORT_DereferenceDeviceHandle+a1
Followup: MachineOwner
Best regards,
Michal Vodicka
UPEK, Inc.
[xxxxx@upek.com, http://www.upek.com]