What's new in DriverKit

Discover the latest updates to DriverKit, which helps you build safer, more secure device drivers in userspace.

Support block storage devices

Develop userspace drivers for block storage devices with the new BlockStorageDeviceDriverKit. You can request the required entitlement on developer.apple.com.

BlockStorageDeviceDriverKit

Build simpler drivers for audio devices

Discover how to use the AudioDriverKit API to consolidate your Audio Server plug-in and DriverKit extension into a single package.

Create audio drivers with DriverKit

Watch now

Explore reentrant dispatch queues

To make porting existing drivers to DriverKit easier, you can now take advantage of reentrant dispatch queues. Tasks can sleep with an optional timeout while waiting for an event, and they can be woken up by other tasks.

IODispatchQueue

Place guard pages

Improve security and protect against unintentional memory corruption by placing guard pages around IOMemoryDescriptor mappings. If driver code tries to access a guard page, then it will crash with an EXC_BAD_ACCESS error instead of corrupting surrounding memory.

Memory Map Options

Learn about notifications

Drivers can communicate with each other and the rest of the system through notifications. Learn how you can register for notifications and publish notifications with IOServiceStateNotificationDispatchSource and the State Notification APIs in IOService.iig.

IOServiceStateNotificationDispatchSource

Resources

System Extensions and DriverKit