We've developed a PCIDriverKit driver for the capture card on macOS and have identified an issue: CreateMemoryDescriptorFromClient can only read data from the user space to the driver, but cannot write data back to the user. Two answers here: I believe the immediate issue is that you also need to set kIOMemoryDisableCopyOnWrite, so your code would be: ret = CreateMemoryDescriptorFromClient(kIOMemoryDirectionOutIn | kIOMemoryDisableCopyOnWrite, ... The other option, particularly if you're dealing with larger amounts of memory that you'll be using for things like ring buffers, is using IOConnectMapMemory(...) and CopyClientMemoryForType(...) to more directly manage the mapping process. __ Kevin Elliott DTS Engineer, CoreOS/Hardware
Topic:
App & System Services
SubTopic:
Drivers
Tags: