DriverKit Share Memory from User Client to App for Streaming

Does anyone have an example of streaming video data from a user client to a client app?

I have successfully set up a DriverKit USB hardware driver that commands a device to successfully fill the same IOBufferMemoryDescriptor at 30fps with new data (verified in driver). I have also managed to map this buffer to the application using CopyClientMemoryForType in the user client and IOConnectMapMemory64 in the app. I have also confirmed the data is the intended image data.

What I CAN NOT do is see updates in the mapped memory in the app. I map and unmap the data, but the contents don't change. No matter how many times I map, CopyClientMemoryForType is called once. How should changes to the underlying dext space memory be reflected/synchronized to the app? Can I not share a single buffer (4-12MB, ringed) and synchronize updates?

Replies

Does anyone have an example of streaming video data from a user client to a client app?

Certainly not me (-:

However, I do have a suggestion: Historically, with I/O Kit, the right primitive for this was IODataQueue and my understanding is that this is also available in DriverKit.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"