Hi,
My driver architecture is VBD+NDIS. I am initiating two miniport instances over VBD. When I run the PNPD Rebalance Test it hang around somewhere and leads to DPC timeout.
I see the problem only if two instances of miniport driver is loaded. If we disable one of them and then run pnpd test it runs fine.
Everytime it seems to failing during NDISMALLOCATESHARED memory.
Below is stack please help me to solve the issue.
regards
rohit
/****************************************************/
PNPFILTR: FilterCompletionRoutine Completed, event set.
PNPFILTR: Time taken for IRP_MN_START_DEVICE to get processed for the PDO FFFFFA8001AAEA20 is 873 milliseconds
PNPFILTR: Start: Test Event cleared
PNPFILTR: Irp recorded, sequence count = 8
PNPFILTR: Completing Start request with status == 0x0000000000000000 PDO = 0xFFFFFA8001AAEA20
PNPFILTR: Received IRP_MN_START_DEVICE for stack with PDO 0xFFFFFA8001F934F0
PNPFILTR: Received IRP_MN_QUERY_CAPABILITIES which I am simply passing down
TunQs=4 ToeQs=0 CtrlQs=0 FlQs=4
PNPFILTR: Received IRP_MN_QUERY_INTERFACE which I am simply passing down
PNPFILTR: FilterCompletionRoutine Completed, event set.
PNPFILTR: Time taken for IRP_MN_START_DEVICE to get processed for the PDO FFFFFA8001F934F0 is 358 milliseconds
PNPFILTR: Completing Start request with status == 0x0000000000000000 PDO = 0xFFFFFA8001F934F0
PNPFILTR: Received IRP_MN_START_DEVICE for stack with PDO 0xFFFFFA8001F94060
PNPFILTR: Received IRP_MN_QUERY_CAPABILITIES which I am simply passing down
PNPFILTR: Received IRP_MN_QUERY_INTERFACE which I am simply passing down
Assertion: *** DPC execution time exceeds system limit
This is NOT a break in update time
This is a BUG in a DPC routine
Perform a stack trace to find the culprit
The time out limit will be doubled on continuation
Use gh to continue!!
nt! ?? ::FNODOBFM::string'+0x4ebe: fffff800016284b3 cd2c int 2Ch
1: kd> !locks
**** DUMP OF ALL RESOURCE OBJECTS ****
KD: Scanning for held locks.
Resource @ nt!CmpRegistryLock (0xfffff800017fdf80) Shared 1 owning threads
Contention Count = 3
Threads: fffffa80043b4b60-01<*>
KD: Scanning for held locks.
Resource @ nt!IopDeviceTreeLock (0xfffff8000187e500) Shared 1 owning threads
Threads: fffffa80018b2680-01<*>
KD: Scanning for held locks.
Resource @ nt!PiEngineLock (0xfffff8000187e400) Exclusively owned
Contention Count = 9
NumberOfExclusiveWaiters = 1
Threads: fffffa80018b2680-01<*>
Threads Waiting On Exclusive Access:
fffffa80018b1680
KD: Scanning for held locks…
Resource @ NDIS!SharedMemoryResource (0xfffff88000eaee70) Exclusively owned
Threads: fffffa80018b2680-01<*>
KD: Scanning for held locks…1: kd> !locks -p 0xfffff88000eaee70
**** Dump Resource Performance Data ****
00000000: No resource performance data available
1: kd> !locks -d 0xfffff88000eaee70
Resource @ NDIS!SharedMemoryResource (0xfffff88000eaee70) Exclusively owned
Threads: fffffa80018b2680-01<*>
1 total locks, 1 locks currently held
1: kd> !locks -v 0xfffff88000eaee70
Resource @ NDIS!SharedMemoryResource (0xfffff88000eaee70) Exclusively owned
Threads: fffffa80018b2680-01<*>
THREAD fffffa80018b2680 Cid 0004.0048 Teb: 0000000000000000 Win32Thread: 0000000000000000 RUNNING on processor 0
Not impersonating
DeviceMap fffff8a000008c10
Owning Process fffffa8001892040 Image: System
Attached Process N/A Image: N/A
Wait Start TickCount 13786 Ticks: 644 (0:00:00:10.046)
Context Switch Count 1783
UserTime 00:00:00.000
KernelTime 00:00:13.728
Win32 Start Address nt!ExpWorkerThread (0xfffff80001689050)
Stack Init fffff88001fb5db0 Current fffff88001fb4b10
Base fffff88001fb6000 Limit fffff88001fb0000 Call 0
Priority 15 BasePriority 12 UnusualBoost 2 ForegroundBoost 0 IoPriority 2 PagePriority 5
*** ERROR: Module load completed but symbols could not be loaded for pnpfiltr.sys
Child-SP RetAddr Call Site
fffff88001fb49a0 fffff8000172dcb7 nt!KeSignalCallDpcSynchronize+0x70
fffff88001fb49d0 fffff80001738e0e nt!MiDoStackCopy+0x57
fffff88001fb4a20 fffff80001747bec nt!KeGenericCallDpc+0xfe
fffff88001fb4ad0 fffff80001751b4e nt!MiSwapStackPage+0x9ac
fffff88001fb4bd0 fffff80001752ba0 nt!MiClaimPhysicalRun+0x5fe
fffff88001fb4c90 fffff8000178cc15 nt!MiFindContiguousPages+0xb30
fffff88001fb4db0 fffff8000178dbb3 nt!MiAllocateContiguousMemory+0x2a5
fffff88001fb4e40 fffff80001beb2a0 nt!MmAllocateContiguousMemorySpecifyCache+0x53
fffff88001fb4e80 fffff88000ef8eea hal!HalAllocateCommonBuffer+0x40
fffff88001fb4ec0 fffff88003236cc5 NDIS!NdisMAllocateSharedMemory+0x1aa
fffff88001fb4f20 fffff8800321e203 cht4ndis!T4Nic_AllocTxDefragNbPool+0x255 [d:\t4\dev\t4\windows\src\kernel\nic\ndis6x\cht4nic_utils.c @ 1542]
fffff88001fb4fc0 fffff8800321cab5 cht4ndis!_NicSetupTxQue+0x333 [d:\t4\dev\t4\windows\src\kernel\nic\ndis6x\cht4nic_nic.c @ 6042]
fffff88001fb5070 fffff88003213f6e cht4ndis!T4Nic_NicSetupQues+0x925 [d:\t4\dev\t4\windows\src\kernel\nic\ndis6x\cht4nic_nic.c @ 5194]
fffff88001fb5120 fffff88000eee0a5 cht4ndis!T4Nic_MpInitializeEx+0x3ee [d:\t4\dev\t4\windows\src\kernel\nic\ndis6x\cht4nic_main.c @ 1306]
fffff88001fb5190 fffff88000eed793 NDIS!ndisMInitializeAdapter+0x695
fffff88001fb5550 fffff88000eef86c NDIS!ndisInitializeAdapter+0x113
fffff88001fb55b0 fffff88000eed466 NDIS!ndisPnPStartDevice+0xac
fffff88001fb5610 fffff880015f456f NDIS!ndisPnPDispatch+0x246
fffff88001fb56b0 fffff880015f9d40 pnpfiltr+0x156f
fffff88001fb5710 fffff880015f9c87 pnpfiltr+0x6d40
fffff88001fb5760 fffff80001a39bde pnpfiltr+0x6c87
fffff88001fb5790 fffff800017740ed nt!PnpAsynchronousCall+0xce
fffff88001fb57d0 fffff80001a44926 nt!PnpStartDevice+0x11d
fffff88001fb5890 fffff80001a44b20 nt!PnpStartDeviceNode+0x156
fffff88001fb5920 fffff80001a67ddb nt!PipProcessRestartPhase1+0x30
fffff88001fb5950 fffff80001a6852a nt!PipProcessDevNodeTree+0x1cb
fffff88001fb5bc0 fffff8000177c351 nt!PiProcessResourceRequirementsChanged+0xca
fffff88001fb5c10 fffff80001689161 nt!PnpDeviceActionWorker+0x331
fffff88001fb5cb0 fffff8000191f166 nt!ExpWorkerThread+0x111
fffff88001fb5d40 fffff8000165a486 nt!PspSystemThreadStartup+0x5a
fffff88001fb5d80 0000000000000000 nt!KxStartSystemThread+0x16