Hey guys,
So, I have my my Miniport driver working so that it’s receiving data from my bus driver (which is popping the ethernet/IP packets out of the incoming transport stream over PCI) over my direct call interface, and indicating the data up to NDIS (or technically the protocol driver sitting above my mp driver).
I’m able to see the multicast traffic come across my mp driver interface using Wireshark just fine (since it sets my mp driver in ‘Promiscuous mode’, and all traffic is indicated up).
I have an application that’s creating a UdpClient(), invoking JoinMulticastGroup() on the multicast address that I’m interested in (“224.1.1.77” - and I see this address in the wireshark data), and listening for data. However, for some reason the app is not getting the data. Furthermore, I expect to see some kind of OID_802_3_MULTICAST_LIST to come down from NDIS in my mp driver when the app joins the multicast group, but I don’t (verified via dbgPrint()). I do see this print:
“–GetMcast: ea29320a f730cd58”
But this must be from the protocol driver or NDIS, because my driver isn’t printing this out.
I’m sure what’s happening is that my mp driver doesn’t indicate the data up to NDIS because the 224.1.1.77 multicast address isn’t in the multicast list in my mp driver, or maybe the PacketFilter isn’t set correctly (I see it set to ‘11’ shortly after the driver installs).
Now, I can take the same app, and tell it to listen for multicast traffic on 224.1.1.87, and it reads the multicast data just fine from another NIC card installed on the box (which obviously has a separate multicast feed).
So what trigger’s the OID_802_3_MULTICAST_LIST to be sent down to an adapter/mp driver? Also, how does the app know which interface to listen on? I know these are dumb questions, but this is all new to me… I’m learning as I go.
Thanks for any insight!
Jason Summerour