---
title: IOEventLink
framework: DriverKit
role: symbol
role_heading: Class
path: driverkit/ioeventlink
---

# IOEventLink

## Declaration

```occ
class IOEventLink;
```

## Overview

Overview IOEventLink allows for fast IPC, suitable for realtime applications. Applications that open user clients to a DriverKit driver can set up an eventlink for fast signaling. To configure an eventlink, the application will have to first create an eventlink object with os_eventlink_create() (see <os/eventlink_private.h>). The application then has to extract the remote eventlink port with os_eventlink_extract_remote_port(). To send the remote eventlink port to the driver, use: const char * name = “Event Link Name”; // This must match the name the driver used in IOEventLink::Create(). kern_return_t ret = IOConnectTrap3(connect, // user client connection (io_connect_t) 0, // specifies event link configuration trap (uintptr_t)name, (uintptr_t)strlen(name), (uintptr_t)remotePort // port from os_eventlink_extract_remote_port ); Once the remote eventlink port has been sent to the driver, the driver should be notified with a user-defined external method or other existing signaling mechanism. The driver should handle this by activating the IOEventLink with Activate().

## Topics

### Instance Methods

- [Activate](driverkit/ioeventlink/activate.md)
- [Associate](driverkit/ioeventlink/associate.md)
- [Cancel](driverkit/ioeventlink/cancel.md)
- [Disassociate](driverkit/ioeventlink/disassociate.md)
- [Invalidate](driverkit/ioeventlink/invalidate.md)
- [Signal](driverkit/ioeventlink/signal.md)
- [SignalAndWait](driverkit/ioeventlink/signalandwait.md)
- [SignalAndWaitUntil](driverkit/ioeventlink/signalandwaituntil.md)
- [Wait](driverkit/ioeventlink/wait.md)
- [WaitUntil](driverkit/ioeventlink/waituntil.md)
- [free](driverkit/ioeventlink/free.md)
- [init](driverkit/ioeventlink/init.md)

### Type Methods

- [Create](driverkit/ioeventlink/create.md)

## Relationships

### Inherits From

- [OSObject](driverkit/osobject.md)
