Hi
I have a protocol driver PD1. It subscribes to certain ether_types (not IPV4/6) and also adds a multicast addr.
I have another 3’rd party protocol driver as well PD2. It also subscribes for certain ether_types (not IPV4/6) and also sets multicast addr.
My issue is
0) When I disable all the MS and other protocols from the NIC, below happens
a) At start I get all the NBLs I need, I make a connection
b) Then I loose connection because I did not receive the periodic multicast pkt’ed NBLs
Basically frame drop above the miniport. ( I see them on wire etc)
c) I open WireShark and everything is fine.
I am thinking
A) This is nothing to do with the way I am using OID_802_3_MULTICAST_LIST because of a).
B) Rather it is PD2, that is mucking the NBL list it got in its PRotocolReceiveNetBufferLists().
C) My hypothesis is w/o Wireshark, PD2 is getting an NBL pattern that it is mis-handling, (basically unlinking the chain but not re-chaining everything back or missing NdisReturnNetBufferLists() for some NBLS etc. when NDIS_TEST_RECEIVE_CAN_PEND=1 etc.).
D) With WShrak enabled (promiscuous mode, probably CAN_PEND=0 etc.), PD2 is getting a NBL pattern that it can ALWAYS handle.
I used below
!ndiskd.pendingnbls with NBLTracking enabled on target etc.
Not sure if/how to use its o/p to debug my issue.
I do not have source code for PD2.
PD1/PDR are NDIS6.0, miniport is 6.20. Target is Win7 (i.e. 2k8 R2 SP1) server.
(I know OID_802_3_MULTICAST_LIST doesn?t validate whether unicast or multicast) I also use OID_802_3_MULTICAST_LIST to add a unicast filter (but the pkts I am missing are multi-cast). Probably no significance here.
Let me know any ideas/tools on how to forward on this.
Thx