MacChangeEthAddresses

NDIS_STATUS
    MacChangeEthAddresses(
        IN UINT  OldAddressCount,
        IN CHAR  OldAddresses[][ETH_LENGTH_OF_ADDRESS],
        IN UINT  NewAddressCount,
        IN CHAR  NewAddresses[][ETH_LENGTH_OF_ADDRESS],
        IN NDIS_HANDLE  MacBindingHandle,
        IN PNDIS_REQUEST  NdisRequest,
        IN BOOLEAN  Set
        );

MacChangeEthAddresses is a NIC driver action function the Ethernet filter library calls when the multicast address list changes.

Parameters

OldAddressCount
Specifies the number of addresses in the array of old multicast addresses(OldAddresses).
OldAddresses[][ETH_LENGTH_OF_ADDRESS]
Specifies a two-dimensional array listing the old multicast addresses.
NewAddressCount
Specifies the number of addresses in the array of new multicast addresses (NewAddresses).
NewAddresses[][ETH_LENGTH_OF_ADDRESS]
Specifies a two-dimensional array listing the new multicast addresses.
MacBindingHandle
Specifies the handle that the NIC driver associates with the binding.
NdisRequest
Points to a request structure.
Set
Specifies TRUE if changes are being caused by a set request rather than the closing of a binding.

Return Value

MacChangeEthAddresses can return the following status codes:

NDIS_STATUS_PENDING
NDIS_STATUS_RESET_IN_PROGRESS
NDIS_STATUS_SUCCESS

Comments

The NIC driver supplied the entry point for MacChangeEthAddresses when it called EthCreateFilter to set up the Ethernet filter database.

EthChangeFilterAddresses, which the NIC driver calls after it acquires the filter database spin lock, actually calls MacChangeEthAddresses only after checking the current multicast address list for all bound protocols and determining that it requires changes.

If MacChangeEthAddresses returns anything other than NDIS_STATUS_SUCCESS or NDIS_STATUS_PENDING, EthChangeFilterAddresses discards any changes this function made to the multicast address list.

MacChangeEthAddresses runs at IRQL DISPATCH_LEVEL.

See Also

EthChangeFilterAddresses, EthCreateFilter, MacAddAdapter, NdisAcquireSpinLock