// netadapter.h
typedef enum _NET_PACKET_FILTER_FLAGS {
NetPacketFilterFlagDirected = 0x00000001,
NetPacketFilterFlagMulticast = 0x00000002,
NetPacketFilterFlagAllMulticast = 0x00000004,
NetPacketFilterFlagBroadcast = 0x00000008,
NetPacketFilterFlagPromiscuous = 0x00000020
} NET_PACKET_FILTER_FLAGS;
View the official Windows Driver Kit DDI referenceNo description available.
The NET_PACKET_FILTER_FLAGS enumeration describes a network adapter's receive packet filters.
NetPacketFilterFlagDirected:0x00000001The network adapter can filter directed packets. Directed packets contain a destination address equal to the MAC address of the NIC.
NetPacketFilterFlagMulticast:0x00000002The network adapter can filter multicast packets whose destination MAC address matches an address in the multicast address list.
NetPacketFilterFlagAllMulticast:0x00000004The network adapter can filter all multicast address packets, not just the ones enumerated in the multicast address list.
NetPacketFilterFlagBroadcast:0x00000008The network adapter can filter broadcast packets.
NetPacketFilterFlagPromiscuous:0x00000020The network adapter can filter all packets regardless of whether VLAN filtering is enabled or not and whether the VLAN identifier matches or not.
The driver uses the NET_PACKET_FILTER_FLAGS enumeration to specify the net adapter's receive packet filters in the NET_ADAPTER_RECEIVE_FILTER_CAPABILITIES structure.
An initialized NET_ADAPTER_RECEIVE_FILTER_CAPABILITIES structure is an input to NetAdapterSetReceiveFilterCapabilities.
[!IMPORTANT] If the driver doesn't report support for all of the packet filters expected by an upper layer, NetAdapterCx will fail the OID_GEN_CURRENT_PACKET_FILTER request, which causes the upper layer to fail to bind to your driver. For reliable binding, your driver must report support for all packet filter types.
NET_ADAPTER_RECEIVE_FILTER_CAPABILITIES
EVT_NET_ADAPTER_SET_RECEIVE_FILTER
NET_ADAPTER_RECEIVE_FILTER_CAPABILITIES_INIT
NetAdapterSetReceiveFilterCapabilities
NetReceiveFilterGetPacketFilter