Hi everyone:
I am running an ndis 6 + KMDF Ethernet miniport driver. The miniport
controls a USB NIC .
I bridged miniport through bridgeMP to another Ethernet NIC.
When I am suprisingly remove my device I my MiniportPause is not
called and the miniport remains active(checkforhang is keep being
called).
When I do !stacks 2 ndis I see the following:
nt!KiSwapThread+0x36d:
nt!KeWaitForSingleObject+0x414
ndis!NdisWaitEvent+0x55
bridge+0xb1d7
bridge+0xb221
bridge+0x1a92
ndis!ndisUnbindProtocol+0x24b
ndis!ndisPnPNotifyAllTransports
+0x1c8
ndis!ndisCloseMiniportBindings
+0x17a
ndis!ndisPnPRemoveDevice+0x1ab
ndis!ndisPnPDispatch+0x85e
nt!IovCallDriver+0x252
nt!IofCallDriver+0x1b
nt!ViFilterDispatchPnp+0x120
nt!IovCallDriver+0x252
nt!IofCallDriver+0x1b
nt!IopSynchronousCall+0xce
nt!IopRemoveDevice+0xd5
nt!
PnpSurpriseRemoveLockedDeviceNode+0xbd
nt!PnpDeleteLockedDeviceNode
+0x1f
nt!PnpDeleteLockedDeviceNodes
+0x4c
nt!
PnpProcessQueryRemoveAndEject+0x572
nt!PnpProcessTargetDeviceEvent
+0x38
nt!PnpDeviceEventWorker+0x201
nt!ExpWorkerThread+0xfd
nt!PspSystemThreadStartup+0x9d
nt!KiThreadStartup+0x16
It seems that the bridge is hang on some Event and due to that the
miniport is unloaded.
Does anyone has any idea how can I further debug it?
Thanks
Miki