I’m writing a driver for a PCI device using KMDF 1.7. I’m installing on
32-bit XP (SP2), using the “Found new hardware” wizard. The install
hangs with the WdfCoInstaller01007.dll step complete (I *believe* it has
completed that step; the WDF setup log file looks happy).
This happens to be a Core2 Duo (fortunately), since Task Manager shows
one processor spinning away in “System”. If I break into the debugger
and looks at the threads for the system process, I see one which is
active, and it has an interesting stack:
ChildEBP RetAddr Args to Child
bacfb78c 80544109 00000001 00000000 000000d1 nt!RtlpBreakWithStatusInstruction (FPO: [1,0,0])
bacfb78c 805dc3f1 00000001 00000000 000000d1 nt!KeUpdateSystemTime+0x175 (FPO: [0,2] TrapFrame @ bacfb7a0)
bacfb81c 805dc546 e17525d8 0000c000 00000000 nt!RtlpIsRangeAvailable+0x89 (FPO: [11,0,0])
bacfb874 ba774f54 e1b0a8a0 00001000 00000000 nt!RtlFindRange+0xfc (FPO: [12,6,4])
bacfb8bc ba76dd12 e138a54c e13cb310 e138a54c pci!ArbFindSuitableRange+0x9e (FPO: [2,1,4])
bacfb8d4 ba773c6f e138a54c e13cb310 e138a54c pci!ario_FindSuitableRange+0xb6 (FPO: [2,0,0])
bacfb8f0 ba7749a6 e138a54c 003cb000 bacfb9ac pci!ArbAllocateEntry+0x8d (FPO: [2,0,4])
bacfb910 ba773ac0 0000000f e13a90a4 bacfb9ac pci!ArbTestAllocation+0xb2 (FPO: [2,1,4])
bacfb92c 80594982 e138a54c 00000000 bacfb94c pci!ArbArbiterHandler+0x32 (FPO: [3,0,4])
bacfb95c 80595c01 bacfb9ac e10c81c0 00000028 nt!IopTestConfiguration+0x42 (FPO: [1,4,4])
bacfb98c 80596fde e10c8008 0000000b ffffffff nt!IopFindBestConfiguration+0x3d (FPO: [3,6,4])
bacfb9e0 805974b2 e1b9f810 e1b2a2f8 00000000 nt!IopRebalance+0x1da (FPO: [2,13,0])
bacfba38 8059a09a bacfba98 01cfba74 00000000 nt!IopAllocateResources+0x1bc (FPO: [5,15,0])
bacfba90 8059a202 00000001 e1b2a2f8 00000001 nt!IopAssignResourcesToDevices+0x100 (FPO: [4,13,0])
bacfbac8 80590e26 89bb75e8 00000000 bacfbb15 nt!IopProcessAssignResources+0xd6 (FPO: [3,5,0])
bacfbd24 805914ba 89bb75e8 00000001 00000000 nt!PipProcessDevNodeTree+0xa6 (FPO: [8,143,4])
bacfbd54 804f66bc 00000003 8055a5c0 8056375c nt!PiRestartDevice+0x80 (FPO: [1,0,0])
bacfbd7c 80537757 00000000 00000000 89c318b8 nt!PipDeviceActionWorker+0x168 (FPO: [1,4,0])
bacfbdac 805ce794 00000000 00000000 00000000 nt!ExpWorkerThread+0xef (FPO: [1,6,0])
bacfbddc 805450ce 80537668 00000001 00000000 nt!PspSystemThreadStartup+0x34 (FPO: [Non-Fpo])
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
It sure looks like the system is trying to assign some resources to this
thing, and running around in circles. Any suggestions for what to look
for? If it helps, here is the output from !pci. The only thing that
looks a little odd to me is that ‘Command’ does not have IoSpaceEn set,
but BAR1 contains an I/O space (BAR0 and BAR1 map the same set of
registers, one in memory and one I/O, both 4KB in size). I’m not sure
what my next step is…
PCI Configuration Space (Segment:0000 Bus:06 Device:05 Function:00)
Common Header:
00: VendorID 10e3 Tundra Semiconductor Corp.
02: DeviceID 0000
04: Command 0006 MemSpaceEn BusInitiate
06: Status 0200 DEVSELTiming:1
08: RevisionID 02
09: ProgIF 00
0a: SubClass 80 Other Bridge
0b: BaseClass 06 Bridge Device
0c: CacheLineSize 0000
0d: LatencyTimer 20
0e: HeaderType 00
0f: BIST 00
10: BAR0 d7fff000
14: BAR1 0000e001
18: BAR2 00000000
1c: BAR3 00000000
20: BAR4 00000000
24: BAR5 00000000
28: CBCISPtr 00000000
2c: SubSysVenID 0000
2e: SubSysID 0000
30: ROMBAR 00000000
34: CapPtr 00
3c: IntLine 0b
3d: IntPin 01
3e: MinGnt 03
3f: MaxLat 00
Device Private:
40: 00000000 00000000 00000000 00000000
50: 00000000 00000000 00000000 00000000
60: 00000000 00000000 00000000 00000000
70: 00000000 00000000 00000000 00000000
80: 00000000 00000000 00000000 00000000
90: 00000000 00000000 00000000 00000000
a0: 00000000 00000000 00000000 00000000
b0: 00000000 00000000 00000000 00000000
c0: 00000000 00000000 00000000 00000000
d0: 00000000 00000000 00000000 00000000
e0: 00000000 00000000 00000000 00000000
f0: 00000000 00000000 00000000 00000000
–
//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________