In the tap-win32 driver a check in AdapterTransmit(..) prevents multicast packets from ever reaching user space.
More specifically it is the following check: // Only accept directed packets, // not broadcasts. if (memcmp (e, &l_Adapter->m_TapToUser, ETHERNET_HEADER_SIZE)) goto no_queue; Judging from the comment the check is put in to discard broadcast traffic, but it will also trigger on multicast traffic. Would it be reasonable to change this to do a more direct check for broadcast traffic or add an exception when multicast traffic is detected?