Hi everybody
I have a problem with my USB driver for a proprietary device. Everything works fine, until I connect two identical devices to two different USB host controller on the same PC. In this case the computer crashes with a PNP_DETECTED_FATAL_ERROR. There is no problem if both devices are connected to the same host controller. I’ve tested it on Windows XP SP2.
The device is a composite device with the following interfaces:
Interface 0: Storage Device
Interface 1: HID
Interface 2: Proprietary Interface
This is the corresponding WinDBG output:
1: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
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: 00000001, Duplicate PDO
A specific instance of a driver has enumerated multiple PDOs with
identical device id and unique ids.
Arg2: 899c9570, Newly reported PDO.
Arg3: 89a4b2e8, PDO of which it is a duplicate.
Arg4: 00000000
Debugging Details:
*** No owner thread found for resource 8055a4e0
*** No owner thread found for resource 8055a4e0
*** No owner thread found for resource 8055a4e0
*** No owner thread found for resource 8055a4e0
BUGCHECK_STR: 0xCA_1
DEVICE_OBJECT: 899c9570
DRIVER_OBJECT: 8a1fed78
IMAGE_NAME: usbccgp.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 41107d6d
MODULE_NAME: usbccgp
FAULTING_MODULE: bac68000 usbccgp
DEFAULT_BUCKET_ID: DRIVER_FAULT
PROCESS_NAME: System
LOCK_ADDRESS: 8055a560 – (!locks 8055a560)
Resource @ nt!IopDeviceTreeLock (0x8055a560) Shared 1 owning threads
Threads: 8a6bcda8-01<*>
1 total locks, 1 locks currently held
PNP_TRIAGE:
Lock address : 0x8055a560
Thread Count : 1
Thread address: 0x8a6bcda8
Thread wait : 0xbe6a
LAST_CONTROL_TRANSFER: from 8059084d to 804f9f13
STACK_TEXT:
bad039d4 8059084d 000000ca 00000001 899c9570 nt!KeBugCheckEx+0x1b
bad03ad0 8059100f 8a065b48 8a57b778 8a171350 nt!PipProcessNewDeviceNode+0x5d1
bad03d24 805915de 8a171350 00000001 00000000 nt!PipProcessDevNodeTree+0x16b
bad03d54 804f6970 00000003 8055a5c0 805637bc nt!PiRestartDevice+0x80
bad03d7c 80537aff 00000000 00000000 8a6bcda8 nt!PipDeviceActionWorker+0x168
bad03dac 805cea08 00000000 00000000 00000000 nt!ExpWorkerThread+0xef
bad03ddc 8054546e 80537a10 00000001 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
STACK_COMMAND: kb
FOLLOWUP_NAME: MachineOwner
FAILURE_BUCKET_ID: 0xCA_1_IMAGE_usbccgp.sys_DATE_2004_08_04
BUCKET_ID: 0xCA_1_IMAGE_usbccgp.sys_DATE_2004_08_04
Followup: MachineOwner
1: kd> lmvm usbccgp
start end module name
bac68000 bac6fb80 usbccgp (pdb symbols) C:\WINDDK\Symbols\free\xpsp2\sys\usbccgp.pdb
Loaded symbol image file: usbccgp.sys
Image path: \SystemRoot\system32\DRIVERS\usbccgp.sys
Image name: usbccgp.sys
Timestamp: Wed Aug 04 08:08:45 2004 (41107D6D)
CheckSum: 00013C1C
ImageSize: 00007B80
Translations: 0000.04b0 0000.04e0 0409.04b0 0409.04e0
Does anybody has a idea what’s going wrong?
Thanks, patric