I have a NetworkingDriverKit driver, and created an IOUserNetworkRxSubmissionQueue with a shared packet pool with the other queues. How is the IOUserNetworkRxSubmissionQueue initially loaded with packets? I continually get an #define kIOReturnUnderrun iokit_common_err(0x2e7) // data underrun when I run IOUserNetworkRxSubmissionQueue->DeQueue(&packet), which I presume means it is empty. The IOUserNetworkTxSubmissionQueue->DeQueue(&packet) is successful once DataAvailable is called, so I think the queues are created correctly. I would simply Enqueue a bunch of packets to IOUserNetworkRxCompletionQueue, but in DriverKit 19 there seems to be no way to allocate a standalone packet. The IOUserNetworkRxSubmissionQueue is enabled.