EthQueryOpenFilterAddresses

VOID
    EthQueryOpenFilterAddresses(
        OUT PNDIS_STATUS  Status,
        IN PETH_FILTER  Filter,
        IN NDIS_HANDLE  NdisFilterHandle,
        IN UINT  SizeOfArray,
        OUT PUINT  NumberOfAddresses,
        OUT CHAR  AddressArray[][ETH_LENGTH_OF_ADDRESS]
        );

EthQueryOpenFilterAddresses is called by the NIC driver to query the Ethernet filter library database for a list of multicast addresses associated with a binding.

Parameters

Status
Points to a caller-supplied variable in which this function returns the status of the query operation. Possible values are:

NDIS_STATUS_FAILURE
NDIS_STATUS_SUCCESS

Filter
Points to a previously created and initialized filter library database.
NdisFilterHandle
Specifies the handle that the filter library associates with the binding filter.
SizeOfArray
Specifies the byte count for the two-dimensional array to contain the addresses.
NumberOfAddresses
Points to the caller-supplied variable in which this function returns the number of addresses that it writes to the array.
AddressArray[][ETH_LENGTH_OF_ADDRESS]
Specifies the two-dimensional, caller-supplied array to which this function writes addresses currently associated with the binding.

Comments

The NIC driver calls this function before it alters registers on the network interface card to effect filtering. The timing of the call is important if another binding has altered the multicast address list. Before calling this function, the NIC driver calls EthNumberOfOpenFilterAddresses to obtain the number of multicast addresses to be retrieved.

A caller must be holding the database spin lock to call EthQueryOpenFilterAddresses, so the driver is running at IRQL DISPATCH_LEVEL.

See Also

EthNumberOfOpenFilterAddresses