---
title: controllerWillClose
framework: kernel
role: pseudoSymbol
path: kernel/ionetworkinterface/1810322-controllerwillclose
---

# controllerWillClose

Sends a notification that the interface will close the network controller.

## Declaration

```occ
virtual void controllerWillClose(
 IONetworkController *controller ); 
```

## Parameters

- `controller`: The controller that is about to be closed.

## Overview

Overview This method is called by handleClose() after receiving a close from the last interface client, and just before the controller is closed. Subclasses can override this method to perform any cleanup action before the controller is closed. This method is called with the arbitration lock held, hence issuing I/O to the controller should be avoided to eliminate the possibility of a deadlock.

## See Also

### Miscellaneous

- [addNetworkData](kernel/ionetworkinterface/1810235-addnetworkdata.md)
- [attachToDataLinkLayer](kernel/ionetworkinterface/1810250-attachtodatalinklayer.md)
- [clearInputQueue](kernel/ionetworkinterface/1810266-clearinputqueue.md)
- [controllerDidChangePowerState](kernel/ionetworkinterface/1810277-controllerdidchangepowerstate.md)
- [controllerDidOpen](kernel/ionetworkinterface/1810292-controllerdidopen.md)
- [controllerWillChangePowerState](kernel/ionetworkinterface/1810306-controllerwillchangepowerstate.md)
- [debuggerRegistered](kernel/ionetworkinterface/1810336-debuggerregistered.md)
- [detachFromDataLinkLayer](kernel/ionetworkinterface/1810351-detachfromdatalinklayer.md)
- [feedPacketInputTap](kernel/ionetworkinterface/1810364-feedpacketinputtap.md)
- [feedPacketOutputTap](kernel/ionetworkinterface/1810380-feedpacketoutputtap.md)
- [flushInputQueue](kernel/ionetworkinterface/1810398-flushinputqueue.md)
- [free](kernel/ionetworkinterface/1810410-free.md)
- [getController](kernel/ionetworkinterface/1810426-getcontroller.md)
- [getExtraFlags](kernel/ionetworkinterface/1810443-getextraflags.md)
- [getFlags](kernel/ionetworkinterface/1810460-getflags.md)
- [getIfnet](kernel/ionetworkinterface/1810471-getifnet.md)
- [getInterfaceState](kernel/ionetworkinterface/1810480-getinterfacestate.md)
- [getInterfaceType](kernel/ionetworkinterface/1810498-getinterfacetype.md)
- [getMaxTransferUnit](kernel/ionetworkinterface/1810513-getmaxtransferunit.md)
- [getMediaAddressLength](kernel/ionetworkinterface/1810531-getmediaaddresslength.md)
- [getMediaHeaderLength](kernel/ionetworkinterface/1810551-getmediaheaderlength.md)
- [getNamePrefix](kernel/ionetworkinterface/1810563-getnameprefix.md)
- [getNetworkData(const char *)](kernel/ionetworkinterface/1810574-getnetworkdata.md)
- [getNetworkData(const OSSymbol *)](kernel/ionetworkinterface/1810596-getnetworkdata.md)
- [getUnitNumber](kernel/ionetworkinterface/1810607-getunitnumber.md)
- [handleClientClose](kernel/ionetworkinterface/1810628-handleclientclose.md)
- [handleClientOpen](kernel/ionetworkinterface/1810645-handleclientopen.md)
- [init](kernel/ionetworkinterface/1810663-init.md)
- [initIfnetParams](kernel/ionetworkinterface/1810678-initifnetparams.md)
- [inputEvent](kernel/ionetworkinterface/1810692-inputevent.md)
- [inputPacket](kernel/ionetworkinterface/1810712-inputpacket.md)
- [isPrimaryInterface](kernel/ionetworkinterface/1810743-isprimaryinterface.md)
- [isRegistered](kernel/ionetworkinterface/1810763-isregistered.md)
- [lock](kernel/ionetworkinterface/1810783-lock.md)
- [performCommand](kernel/ionetworkinterface/1810800-performcommand.md)
- [powerStateDidChangeTo](kernel/ionetworkinterface/1810818-powerstatedidchangeto.md)
- [powerStateWillChangeTo](kernel/ionetworkinterface/1810839-powerstatewillchangeto.md)
- [registerOutputHandler](kernel/ionetworkinterface/1810858-registeroutputhandler.md)
- [removeNetworkData(const char *)](kernel/ionetworkinterface/1810886-removenetworkdata.md)
- [removeNetworkData(const OSSymbol *)](kernel/ionetworkinterface/1810904-removenetworkdata.md)
- [setFlags](kernel/ionetworkinterface/1810924-setflags.md)
- [setInterfaceState](kernel/ionetworkinterface/1810944-setinterfacestate.md)
- [setInterfaceType](kernel/ionetworkinterface/1810958-setinterfacetype.md)
- [setMaxTransferUnit](kernel/ionetworkinterface/1810979-setmaxtransferunit.md)
- [setMediaAddressLength](kernel/ionetworkinterface/1810991-setmediaaddresslength.md)
- [setMediaHeaderLength](kernel/ionetworkinterface/1811003-setmediaheaderlength.md)
- [setUnitNumber](kernel/ionetworkinterface/1811014-setunitnumber.md)
- [unlock](kernel/ionetworkinterface/1811026-unlock.md)
