EthCreateFilter

BOOLEAN
    EthCreateFilter(
        IN UINT  MaximumMulticastAddresses,
        IN ETH_ADDRESS_CHANGE  AddressChangeAction,
        IN ETH_FILTER_CHANGE  FilterChangeAction,
        IN ETH_DEFERRED_CLOSE  CloseAction,
        IN PUCHAR  AdapterAddress,
        IN PNDIS_SPIN_LOCK  Lock,
        OUT PETH_FILTER  *Filter
        );

EthCreateFilter is called by a NIC driver. It creates and initializes an Ethernet filter library database associated with one network interface card.

Parameters

MaximumMulticastAddresses
Specifies the maximum number of multicast addresses supported by the filter.
AddressChangeAction
Specifies the address of the caller’s MacChangeEthAddresses function, which the Ethernet filter library calls when a change occurs in the list of multicast addresses that the network interface card enables.
FilterChangeAction
Specifies the address of the caller’s MacChangeFilter function, which the Ethernet filter library calls when a binding sets or clears a particular filter class. The binding must be the first or only binding using the filter class.
CloseAction
Specifies the address of the caller’s MacCloseAction function, which the Ethernet filter library calls if a binding closes while it is indicating incoming data through NdisIndicateReceive.
AdapterAddress
Points to the network address of the network interface card.
Lock
Points to an initialized spin lock that the driver must hold when it requires exclusive access to the Ethernet filter library database.
Filter
Points to a caller-supplied variable in which this function writes a pointer to the created filter.

Return Value

EthCreateFilter returns TRUE if it creates the Ethernet filter library database successfully.

Comments

The NIC driver uses the Ethernet filter library to filter received network packets. Using the destination address of a received packet, the filter library determines the protocol driver bindings that receive indications for the packet.

Callers of EthCreateFilter run at IRQL PASSIVE_LEVEL.

See Also

EthDeleteFilter, MacChangeEthAddresses, MacChangeFilter, MacCloseAction, NdisAllocateSpinLock, NdisIndicateReceive