---
title: ifnet_detach
framework: Kernel
role: symbol
role_heading: Function
platforms: [macOS 10.4+]
path: kernel/1524903-ifnet_detach
---

# ifnet_detach

## Declaration

```occ
errno_t ifnet_detach(ifnet_t interface);
```

## Parameters

- `interface`: The interface to detach.

## Return Value

Return Value 0 on success, otherwise errno error.

## Discussion

Discussion Detaches the interface. Call this to indicate this interface is no longer valid (i.e. PC Card was removed). This function will begin the process of removing knowledge of this interface from the stack. The function will return before the interface is detached. The functions you supplied in to the interface may continue to be called. When the detach has been completed, your detached function will be called. Your kext must not unload until the detached function has been called. The interface will be properly freed when the reference count reaches zero. An interface may not be attached again. You must call ifnet_allocate to create a new interface to attach. This function is intended to be called by the driver. A kext must not call this function on an interface the kext does not own.

## See Also

### Network Kernel Extensions

- [sock_accept](kernel/1396149-sock_accept.md)
- [sock_bind](kernel/1396145-sock_bind.md)
- [sock_close](kernel/1396134-sock_close.md)
- [sock_connect](kernel/1396120-sock_connect.md)
- [sock_getpeername](kernel/1396137-sock_getpeername.md)
- [sock_getsockname](kernel/1396141-sock_getsockname.md)
- [sock_getsockopt](kernel/1396136-sock_getsockopt.md)
- [sock_gettype](kernel/1396147-sock_gettype.md)
- [sock_inject_data_in](kernel/1433192-sock_inject_data_in.md)
- [sock_inject_data_out](kernel/1433162-sock_inject_data_out.md)
- [sock_ioctl](kernel/1396118-sock_ioctl.md)
- [sock_isconnected](kernel/1396130-sock_isconnected.md)
- [sock_isnonblocking](kernel/1396116-sock_isnonblocking.md)
- [sock_listen](kernel/1396139-sock_listen.md)
- [sock_receive](kernel/1396126-sock_receive.md)
- [sock_receivembuf](kernel/1396114-sock_receivembuf.md)
- [sock_send](kernel/1396143-sock_send.md)
- [sock_sendmbuf](kernel/1396128-sock_sendmbuf.md)
- [sock_setpriv](kernel/1396124-sock_setpriv.md)
- [sock_setsockopt](kernel/1396148-sock_setsockopt.md)
- [sock_shutdown](kernel/1396150-sock_shutdown.md)
- [sock_socket](kernel/1396122-sock_socket.md)
- [sockopt_copyin](kernel/1433166-sockopt_copyin.md)
- [sockopt_copyout](kernel/1433176-sockopt_copyout.md)
- [sockopt_direction](kernel/1433253-sockopt_direction.md)
- [sockopt_level](kernel/1433193-sockopt_level.md)
- [sockopt_name](kernel/1433249-sockopt_name.md)
- [sockopt_valsize](kernel/1433272-sockopt_valsize.md)
- [ifaddr_address](kernel/1525073-ifaddr_address.md)
- [ifaddr_address_family](kernel/1524915-ifaddr_address_family.md)
- [ifaddr_dstaddress](kernel/1525058-ifaddr_dstaddress.md)
- [ifaddr_findbestforaddr](kernel/1525009-ifaddr_findbestforaddr.md)
- [ifaddr_ifnet](kernel/1524949-ifaddr_ifnet.md)
- [ifaddr_netmask](kernel/1525132-ifaddr_netmask.md)
- [ifaddr_reference](kernel/1525060-ifaddr_reference.md)
- [ifaddr_release](kernel/1524928-ifaddr_release.md)
- [ifaddr_withaddr](kernel/1524859-ifaddr_withaddr.md)
- [ifaddr_withdstaddr](kernel/1525107-ifaddr_withdstaddr.md)
- [ifaddr_withnet](kernel/1524842-ifaddr_withnet.md)
- [ifaddr_withroute](kernel/1524963-ifaddr_withroute.md)
- [iflt_attach](kernel/1589956-iflt_attach.md)
- [iflt_detach](kernel/1589950-iflt_detach.md)
- [ifmaddr_address](kernel/1524853-ifmaddr_address.md)
- [ifmaddr_ifnet](kernel/1525101-ifmaddr_ifnet.md)
- [ifmaddr_lladdress](kernel/1525091-ifmaddr_lladdress.md)
- [ifmaddr_reference](kernel/1524890-ifmaddr_reference.md)
- [ifmaddr_release](kernel/1525024-ifmaddr_release.md)
- [ifnet_add_multicast](kernel/1524976-ifnet_add_multicast.md)
- [ifnet_addrlen](kernel/1524855-ifnet_addrlen.md)
- [ifnet_allocate](kernel/1525028-ifnet_allocate.md)
- [ifnet_attach](kernel/1524922-ifnet_attach.md)
- [ifnet_attach_protocol](kernel/1525004-ifnet_attach_protocol.md)
- [ifnet_attach_protocol_v2](kernel/1525131-ifnet_attach_protocol_v2.md)
- [ifnet_baudrate](kernel/1524866-ifnet_baudrate.md)
- [ifnet_capabilities_enabled](kernel/1525016-ifnet_capabilities_enabled.md)
- [ifnet_capabilities_supported](kernel/1524931-ifnet_capabilities_supported.md)
- [ifnet_detach_protocol](kernel/1525007-ifnet_detach_protocol.md)
- [ifnet_event](kernel/1524986-ifnet_event.md)
- [ifnet_family](kernel/1524921-ifnet_family.md)
- [ifnet_find_by_name](kernel/1525072-ifnet_find_by_name.md)
- [ifnet_flags](kernel/1525111-ifnet_flags.md)
- [ifnet_free_address_list](kernel/1524991-ifnet_free_address_list.md)
- [ifnet_free_multicast_list](kernel/1524898-ifnet_free_multicast_list.md)
- [ifnet_get_address_list](kernel/1525146-ifnet_get_address_list.md)
- [ifnet_get_address_list_family](kernel/1525142-ifnet_get_address_list_family.md)
- [ifnet_get_link_mib_data](kernel/1524988-ifnet_get_link_mib_data.md)
- [ifnet_get_link_mib_data_length](kernel/1524864-ifnet_get_link_mib_data_length.md)
- [ifnet_get_multicast_list](kernel/1525020-ifnet_get_multicast_list.md)
- [ifnet_get_tso_mtu](kernel/1524965-ifnet_get_tso_mtu.md)
- [ifnet_get_wake_flags](kernel/1524907-ifnet_get_wake_flags.md)
- [ifnet_hdrlen](kernel/1524895-ifnet_hdrlen.md)
- [ifnet_index](kernel/1525041-ifnet_index.md)
- [ifnet_input](kernel/1525087-ifnet_input.md)
- [ifnet_interface_family_find](kernel/1524844-ifnet_interface_family_find.md)
- [ifnet_ioctl](kernel/1525082-ifnet_ioctl.md)
- [ifnet_lastchange](kernel/1525140-ifnet_lastchange.md)
- [ifnet_list_free](kernel/1524868-ifnet_list_free.md)
- [ifnet_list_get](kernel/1524913-ifnet_list_get.md)
- [ifnet_lladdr_copy_bytes](kernel/1525069-ifnet_lladdr_copy_bytes.md)
- [ifnet_llbroadcast_copy_bytes](kernel/1525030-ifnet_llbroadcast_copy_bytes.md)
- [ifnet_metric](kernel/1524964-ifnet_metric.md)
- [ifnet_mtu](kernel/1524959-ifnet_mtu.md)
- [ifnet_name](kernel/1524885-ifnet_name.md)
- [ifnet_offload](kernel/1524854-ifnet_offload.md)
- [ifnet_output](kernel/1525046-ifnet_output.md)
- [ifnet_output_raw](kernel/1525049-ifnet_output_raw.md)
- [ifnet_reference](kernel/1524857-ifnet_reference.md)
- [ifnet_release](kernel/1525052-ifnet_release.md)
- [ifnet_remove_multicast](kernel/1524982-ifnet_remove_multicast.md)
- [ifnet_resolve_multicast](kernel/1525080-ifnet_resolve_multicast.md)
- [ifnet_set_addrlen](kernel/1524861-ifnet_set_addrlen.md)
- [ifnet_set_baudrate](kernel/1525090-ifnet_set_baudrate.md)
- [ifnet_set_capabilities_enabled](kernel/1524938-ifnet_set_capabilities_enabled.md)
- [ifnet_set_capabilities_supported](kernel/1525144-ifnet_set_capabilities_supported.md)
- [ifnet_set_flags](kernel/1524996-ifnet_set_flags.md)
- [ifnet_set_hdrlen](kernel/1525097-ifnet_set_hdrlen.md)
- [ifnet_set_link_mib_data](kernel/1525120-ifnet_set_link_mib_data.md)
- [ifnet_set_lladdr](kernel/1524891-ifnet_set_lladdr.md)
- [ifnet_set_metric](kernel/1524932-ifnet_set_metric.md)
- [ifnet_set_mtu](kernel/1524919-ifnet_set_mtu.md)
- [ifnet_set_offload](kernel/1524961-ifnet_set_offload.md)
- [ifnet_set_promiscuous](kernel/1524973-ifnet_set_promiscuous.md)
- [ifnet_set_stat](kernel/1524994-ifnet_set_stat.md)
- [ifnet_set_tso_mtu](kernel/1525098-ifnet_set_tso_mtu.md)
- [ifnet_set_wake_flags](kernel/1525070-ifnet_set_wake_flags.md)
- [ifnet_softc](kernel/1524952-ifnet_softc.md)
- [ifnet_stat](kernel/1525068-ifnet_stat.md)
- [ifnet_stat_increment](kernel/1525065-ifnet_stat_increment.md)
- [ifnet_stat_increment_in](kernel/1525002-ifnet_stat_increment_in.md)
- [ifnet_stat_increment_out](kernel/1525085-ifnet_stat_increment_out.md)
- [ifnet_touch_lastchange](kernel/1524957-ifnet_touch_lastchange.md)
- [ifnet_type](kernel/1524954-ifnet_type.md)
- [ifnet_unit](kernel/1525055-ifnet_unit.md)
