Efi_pxe_base_code.arp(), Arp(), Func – Intel Extensible Firmware Interface User Manual
Page 666

Extensible Firmware Interface Specification
15-60
12/01/02
Version 1.10
EFI_PXE_BASE_CODE.Arp()
Summary
Uses the ARP protocol to resolve a MAC address.
Prototype
EFI_STATUS
(EFIAPI *EFI_PXE_BASE_CODE_ARP) (
IN
EFI_PXE_BASE_CODE
*This,
IN EFI_IP_ADDRESS
*IpAddr,
IN EFI_MAC_ADDRESS
*MacAddr OPTIONAL
);
Parameters
This
Pointer to the
instance.
IpAddr
Pointer to the IP address that is used to resolve a MAC address. When
the MAC address is resolved, the
ArpCacheEntries
and
ArpCache
fields of the
structure are updated.
MacAddr
If
not
NULL
, a pointer to the MAC address that was resolved with the
ARP protocol.
Description
This function uses the ARP protocol to resolve a MAC address. The
UsingIpv6
field of the
EFI_PXE_BASE_CODE_MODE
structure is used to determine if IPv4 or IPv6 addresses are being
used. The IP address specified by
IpAddr
is used to resolve a MAC address. If the ARP protocol
succeeds in resolving the specified address, then the
ArpCacheEntries
and
ArpCache
fields
of the
EFI_PXE_BASE_CODE_MODE
structure are updated, and
EFI_SUCCESS
is returned. If
MacAddr
is not
NULL
, the resolved MAC address is placed there as well.
If the PXE Base Code protocol is in the stopped state, then
EFI_NOT_STARTED
is returned. If
the ARP protocol encounters a timeout condition while attempting to resolve an address, then
EFI_TIMEOUT
is returned. If the Callback Protocol does not return
EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE
, then
EFI_ABORTED
is returned.
Status Codes Returned
EFI_SUCCESS
The IP or MAC address was resolved.
EFI_INVALID_PARAMETER
One of the parameters is not valid.
EFI_DEVICE_ERROR
The network device encountered an error during this operation.
EFI_NOT_STARTED
The PXE Base Code Protocol is in the stopped state.
EFI_TIMEOUT
The ARP Protocol encountered a timeout condition.
EFI_ABORTED
The callback function aborted the ARP Protocol.