EthChangeFilterAddresses

This function is called by an NIC driver to attempt to change the multicast address list for a binding filter in the Ethernet filter library database.

At a Glance

Header file: Ndis.h
Windows CE versions: 2.0 and later

Syntax

NDIS_STATUS EthChangeFilterAddresses(
IN PETH_FILTER Filter, IN NDIS_HANDLE NdisFilterHandle,
IN PNDIS_REQUEST
NdisRequest, IN UINT AddressCount,
IN CHAR
Addresses[][ETH_LENGTH_OF_ADDRESS], IN BOOLEAN Set );

Parameters

Filter
Pointer to a previously created and initialized filter library database.
NdisFilterHandle
Handle that the filter library associates with the binding filter.
NdisRequest
Pointer to the request structure that this function passes to an NIC driver action function.
AddressCount
Specifies the number of elements to be added to the multicast address list.
Addresses[][ETH_LENGTH_OF_ADDRESS]
Specifies a 2-D character array that contains the new multicast address list for the specified binding. The ETH_LENGTH_OF_ADDRESS constant specifies the length, in bytes, of an Ethernet address declared in the Efilter.h header file. The array is a sequence of 48-bit Ethernet addresses with no padding between addresses.
Set
Specifies TRUE if changes do not result from the closing of the binding. This function does not use this value but passes it to an NIC driver action function.

Return Values

NDIS_STATUS_SUCCESS indicates success. One of the following indicates failure:

Remarks

If this function does not change the multicast address list for a binding filter, it has no effect on the filter address list or the multicast address list for the NIC. If this function does change the filter address list, it calls an NIC driver action function and waits for it to return. If the action function returns a status code that indicates neither pending nor success, this function restores the filter library database to its original state.

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