TrChangeFunctionalAddress

NDIS_STATUS
    TrChangeFunctionalAddress(
        IN PTR_FILTER Filter,
        IN NDIS_HANDLE NdisFilterHandle,
        IN PNDIS_REQUEST NdisRequest,
        IN CHAR FunctionalAddressArray[TR_LENGTH_OF_FUNCTIONAL],
        IN BOOLEAN Set
        );

TrChangeFunctionalAddress is called by the NIC driver to change the overall functional address for the network interface card.

Parameters

Filter
Points to a previously created and initialized filter library database.
NdisFilterHandle
Specifies the handle that the filter library associates with the binding filter.
NdisRequest
Points to a request structure this function passes to a NIC driver action function.
FunctionalAddressArray[TR_LENGTH_OF_FUNCTIONAL]
Specifies the array containing the new functional address for the binding.
Set
Specifies TRUE if changes do not result from the closing of the binding. This function does not use Set but passes it to a NIC driver action function.

Return Value

Possible return values include:

NDIS_STATUS_PENDING
NDIS_STATUS_RESET_IN_PROGRESS
NDIS_STATUS_SUCCESS

Comments

The NIC driver must be holding the filter library spinlock when it calls this function.

If TrChangeFunctionalAddress needs to change the bitmap for the address, it calls the NIC driver’s MacChangeTrAddress function.

When TrChangeFunctionalAddress calls MacChangeTrAddress, it returns the status code the latter returns. If MacChangeTrAddress returns a status code that indicates neither pending nor success, the call to TrChangeFunctionalAddress has no effect on the network interface card or its functional address.

If TrChangeFunctionalAddress does not call the NIC driver’s MacChangeTrAddress, it returns NDIS_STATUS_SUCCESS. This status code indicates that the new functional address does not change the combined address.

Callers of TrChangeFunctionalAddress run at IRQL DISPATCH_LEVEL.

See Also

MacChangeTrAddress