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.
Post
Replies
Boosts
Views
Activity
Has anybody gotten the __Require macro to work in DriverKit? Both the 2019 and 2020 WWDC videos show it being used. When I use it, it ends up trying to printf to stderr, which is not defined. I am using the one in DriverKit20.0 SDK.