---
title: "getHardwareAddress(IOEthernetAddress *)"
framework: kernel
role: pseudoSymbol
path: kernel/ioethernetcontroller/1811070-gethardwareaddress
---

# getHardwareAddress(IOEthernetAddress *)

Gets the Ethernet controller's permanent station address.

## Declaration

```occ
virtual IOReturn getHardwareAddress(
 IOEthernetAddress *addrP) = 0; 
```

## Parameters

- `addrP`: Pointer to an IOEthernetAddress where the hardware address should be returned.

## Return Value

Return Value Returns kIOReturnSuccess on success, or an error return code otherwise.

## Overview

Overview Ethernet drivers must implement this method, by reading the address from hardware and writing it to the buffer provided. This method is called from the workloop context.

## See Also

### Miscellaneous

- [createInterface](kernel/ioethernetcontroller/1811019-createinterface.md)
- [disablePacketFilter](kernel/ioethernetcontroller/1811029-disablepacketfilter.md)
- [enablePacketFilter](kernel/ioethernetcontroller/1811042-enablepacketfilter.md)
- [free](kernel/ioethernetcontroller/1811058-free.md)
- [getHardwareAddress(void *, UInt32 *)](kernel/ioethernetcontroller/1811082-gethardwareaddress.md)
- [getMaxPacketSize](kernel/ioethernetcontroller/1811094-getmaxpacketsize.md)
- [getMinPacketSize](kernel/ioethernetcontroller/1811103-getminpacketsize.md)
- [getPacketFilters(const OSSymbol *, UInt32 *)](kernel/ioethernetcontroller/1811115-getpacketfilters.md)
- [getPacketFilters(UInt32 *)](kernel/ioethernetcontroller/1811127-getpacketfilters.md)
- [getVlanTagDemand](kernel/ioethernetcontroller/1811320-getvlantagdemand.md)
- [init](kernel/ioethernetcontroller/1811348-init.md)
- [initialize](kernel/ioethernetcontroller/1811361-initialize.md)
- [publishProperties](kernel/ioethernetcontroller/1811373-publishproperties.md)
- [setHardwareAddress(const IOEthernetAddress *)](kernel/ioethernetcontroller/1811383-sethardwareaddress.md)
- [setHardwareAddress(const void *, UInt32)](kernel/ioethernetcontroller/1811391-sethardwareaddress.md)
- [setMulticastList](kernel/ioethernetcontroller/1811399-setmulticastlist.md)
- [setMulticastMode](kernel/ioethernetcontroller/1811409-setmulticastmode.md)
- [setPromiscuousMode](kernel/ioethernetcontroller/1811419-setpromiscuousmode.md)
- [setVlanTag](kernel/ioethernetcontroller/1811426-setvlantag.md)
- [setWakeOnMagicPacket](kernel/ioethernetcontroller/1811434-setwakeonmagicpacket.md)
