---
title: "enable(IOService *)"
framework: kernel
role: pseudoSymbol
path: kernel/ionetworkcontroller/1813939-enable
---

# enable(IOService *)

Handles an enable request from a client.

## Declaration

```occ
virtual IOReturn enable(
 IOService *client); 
```

## Parameters

- `client`: The client object requesting the enable.

## Return Value

Return Value Returns the return value from the overloaded enable() method, or kIOReturnBadArgument if the client type is unknown.

## Overview

Overview This method handles an enable request from a client. A client will call enable after it has opened the controller, and before it starts to use the controller to send and to receive packets over the network. The client object provided is typecasted using OSDynamicCast, and depending on whether the client is an IOKernelDebugger or an IONetworkInterface, then an overloaded enable method that takes a more specific argument type is called. If the client matches neither type, then kIOReturnBadArgument is returned. A driver has the option of overriding this base enable method, or the overloaded form. This method call is synchronized by the workloop's gate.

## See Also

### Miscellaneous

- [allocatePacket](kernel/ionetworkcontroller/1813917-allocatepacket.md)
- [attachDebuggerClient](kernel/ionetworkcontroller/1813919-attachdebuggerclient.md)
- [attachInterface](kernel/ionetworkcontroller/1813921-attachinterface.md)
- [configureInterface](kernel/ionetworkcontroller/1813923-configureinterface.md)
- [copyMediumDictionary](kernel/ionetworkcontroller/1813924-copymediumdictionary.md)
- [copyPacket](kernel/ionetworkcontroller/1813925-copypacket.md)
- [createInterface](kernel/ionetworkcontroller/1813926-createinterface.md)
- [createOutputQueue](kernel/ionetworkcontroller/1813927-createoutputqueue.md)
- [createWorkLoop](kernel/ionetworkcontroller/1813928-createworkloop.md)
- [detachDebuggerClient](kernel/ionetworkcontroller/1813929-detachdebuggerclient.md)
- [detachInterface](kernel/ionetworkcontroller/1813930-detachinterface.md)
- [disable](kernel/ionetworkcontroller/1813931-disable.md)
- [disable(IONetworkInterface *)](kernel/ionetworkcontroller/1813932-disable.md)
- [disable(IOService *)](kernel/ionetworkcontroller/1813933-disable.md)
- [disablePacketFilter](kernel/ionetworkcontroller/1813934-disablepacketfilter.md)
- [doDisable](kernel/ionetworkcontroller/1813935-dodisable.md)
- [doEnable](kernel/ionetworkcontroller/1813936-doenable.md)
- [enable](kernel/ionetworkcontroller/1813937-enable.md)
- [enable(IONetworkInterface *)](kernel/ionetworkcontroller/1813938-enable.md)
- [enablePacketFilter](kernel/ionetworkcontroller/1813940-enablepacketfilter.md)
- [executeCommand](kernel/ionetworkcontroller/1813941-executecommand.md)
- [free](kernel/ionetworkcontroller/1813942-free.md)
- [freePacket](kernel/ionetworkcontroller/1813943-freepacket.md)
- [getChecksumDemand](kernel/ionetworkcontroller/1813944-getchecksumdemand.md)
- [getChecksumSupport](kernel/ionetworkcontroller/1813945-getchecksumsupport.md)
- [getCommandClient](kernel/ionetworkcontroller/1813946-getcommandclient.md)
- [getCommandGate](kernel/ionetworkcontroller/1813947-getcommandgate.md)
- [getDebuggerLinkStatus](kernel/ionetworkcontroller/1813949-getdebuggerlinkstatus.md)
- [getFeatures](kernel/ionetworkcontroller/1813951-getfeatures.md)
- [getHardwareAddress](kernel/ionetworkcontroller/1813953-gethardwareaddress.md)
- [getMaxPacketSize](kernel/ionetworkcontroller/1813954-getmaxpacketsize.md)
- [getMediumDictionary](kernel/ionetworkcontroller/1813956-getmediumdictionary.md)
- [getMinPacketSize](kernel/ionetworkcontroller/1813957-getminpacketsize.md)
- [getOutputHandler](kernel/ionetworkcontroller/1813959-getoutputhandler.md)
- [getOutputQueue](kernel/ionetworkcontroller/1813960-getoutputqueue.md)
- [getPacketBufferConstraints](kernel/ionetworkcontroller/1813962-getpacketbufferconstraints.md)
- [getPacketFilters](kernel/ionetworkcontroller/1813964-getpacketfilters.md)
- [getSelectedMedium](kernel/ionetworkcontroller/1813966-getselectedmedium.md)
- [handleClose](kernel/ionetworkcontroller/1813967-handleclose.md)
- [handleIsOpen](kernel/ionetworkcontroller/1813968-handleisopen.md)
- [handleOpen](kernel/ionetworkcontroller/1813969-handleopen.md)
- [init](kernel/ionetworkcontroller/1813970-init.md)
- [message](kernel/ionetworkcontroller/1813971-message.md)
- [newModelString](kernel/ionetworkcontroller/1813972-newmodelstring.md)
- [newRevisionString](kernel/ionetworkcontroller/1813973-newrevisionstring.md)
- [newVendorString](kernel/ionetworkcontroller/1813974-newvendorstring.md)
- [outputPacket](kernel/ionetworkcontroller/1813975-outputpacket.md)
- [prepare](kernel/ionetworkcontroller/1813976-prepare.md)
- [publishMediumDictionary](kernel/ionetworkcontroller/1813977-publishmediumdictionary.md)
- [publishProperties](kernel/ionetworkcontroller/1813978-publishproperties.md)
- [receivePacket](kernel/ionetworkcontroller/1813979-receivepacket.md)
- [registerWithPolicyMaker](kernel/ionetworkcontroller/1813980-registerwithpolicymaker.md)
- [releaseDebuggerLock](kernel/ionetworkcontroller/1813981-releasedebuggerlock.md)
- [releaseFreePackets](kernel/ionetworkcontroller/1813982-releasefreepackets.md)
- [replaceOrCopyPacket](kernel/ionetworkcontroller/1813983-replaceorcopypacket.md)
- [replacePacket](kernel/ionetworkcontroller/1813984-replacepacket.md)
- [reserveDebuggerLock](kernel/ionetworkcontroller/1813985-reservedebuggerlock.md)
- [selectMedium](kernel/ionetworkcontroller/1813986-selectmedium.md)
- [selectMediumWithName](kernel/ionetworkcontroller/1813987-selectmediumwithname.md)
- [sendPacket](kernel/ionetworkcontroller/1813988-sendpacket.md)
- [setChecksumResult](kernel/ionetworkcontroller/1813989-setchecksumresult.md)
- [setDebuggerMode](kernel/ionetworkcontroller/1813990-setdebuggermode.md)
- [setHardwareAddress](kernel/ionetworkcontroller/1813991-sethardwareaddress.md)
- [setLinkStatus](kernel/ionetworkcontroller/1813992-setlinkstatus.md)
- [setMaxPacketSize](kernel/ionetworkcontroller/1813993-setmaxpacketsize.md)
- [setSelectedMedium](kernel/ionetworkcontroller/1813994-setselectedmedium.md)
- [start](kernel/ionetworkcontroller/1813995-start.md)
- [stop](kernel/ionetworkcontroller/1813996-stop.md)
- [systemWillShutdown](kernel/ionetworkcontroller/1813997-systemwillshutdown.md)
