Shared data queue between dext and app (IOSharedDataQueueDispatchSource?)

I'm looking for a fast and efficient way for user-space to send I/O to my driver. One way I'd have hoped to do this, was through a shared memory ring-buffer.

In the WWDC19 presentation on System Extensions and DriverKit, at roughly 17:00, they mention an IOSharedDataQueueDispatchSource. This doesn't exist in the DriverKit API. An IODataQueueDispatchSource is available, but doesn't seem to be meant to be shared.

In the old IOKit framework, there are similar IOSharedDataQueue and IODataQueue, but they are unavailable in DriverKit.

So, what are my options for implementing a fast, efficient I/O path to my driver?

Post not yet marked as solved Up vote post of baekalfen Down vote post of baekalfen
356 views

Replies

I've posted the same question on StackOverflow. Together with user pmdj, we've concluded that it isn't available in the API, and reported the issue to Apple.

https://stackoverflow.com/questions/77840032/sharing-a-ring-buffer-between-driver-and-user-space-in-driverkit