---
title: IOInterruptDispatchSource
framework: driverkit
role: symbol
role_heading: Class
path: driverkit/iointerruptdispatchsource
---

# IOInterruptDispatchSource

A dispatch source that reports hardware-related interrupt events to your driver.

## Declaration

```occ
class IOInterruptDispatchSource;
```

## Overview

Overview An IOInterruptDispatchSource object executes an associated action in response to hardware-related interrupts. If your driver handles hardware interrupts, configure this dispatch source and use your action object to provide an appropriat response. Interrupt-related actions execute at the normal thread level. The system records the time at which the interrupt fired using the mach_absolute_time function, and passes that time value to your action’s callback method. For PCI devices, DriverKit supports only MSI interrupt sources.

## Topics

### Configuring the Interrupt Source

- [Create](driverkit/iointerruptdispatchsource/create.md)
- [init](driverkit/iointerruptdispatchsource/init.md)
- [free](driverkit/iointerruptdispatchsource/free.md)
- [SetHandler](driverkit/iointerruptdispatchsource/sethandler.md)

### Starting and Stopping the Interrupt Source

- [SetEnableWithCompletion](driverkit/iointerruptdispatchsource/setenablewithcompletion.md)
- [Cancel](driverkit/iointerruptdispatchsource/cancel.md)
- [IODispatchSourceCancelHandler](driverkit/iodispatchsourcecancelhandler.md)

### Declaring Actions

- [InterruptOccurred](driverkit/iointerruptdispatchsource/interruptoccurred.md)
- [CheckForWork](driverkit/iointerruptdispatchsource/checkforwork.md)
- [IOInterruptDispatchSourcePayload](driverkit/iointerruptdispatchsourcepayload.md)

### Instance Methods

- [GetLastInterrupt](driverkit/iointerruptdispatchsource/getlastinterrupt.md)

### Type Methods

- [GetInterruptType](driverkit/iointerruptdispatchsource/getinterrupttype.md)

## Relationships

### Inherits From

- [IODispatchSource](driverkit/iodispatchsource.md)

## See Also

### Event management

- [IODispatchQueue](driverkit/iodispatchqueue.md)
- [IOTimerDispatchSource](driverkit/iotimerdispatchsource.md)
- [IODataQueueDispatchSource](driverkit/iodataqueuedispatchsource.md)
- [IODispatchSource](driverkit/iodispatchsource.md)
- [OSAction](driverkit/osaction.md)
