HI,
I have a simple IOUserHIDEventDriver derived class for a regular mouse which *only* logs messages for the incoming HID reports.
The driver successfully loads when the USB transmitter is plugged in and I can receive the HID reports. I can also see that dispatchRelativePointerEvent()(for testing I overrode this method) is being called in response to the HID reports.
But the cursor refuses to move! It's as if the dispatch function fails to push the HID reports back into the subsystem for further processing.
I do have SIP disabled (or else the driver won't be loaded). I tried running the app (which loads the driver) from /Applications, but that doesn't work either. My entitlements all look fine too.
What could be going on?
TIA
I have a simple IOUserHIDEventDriver derived class for a regular mouse which *only* logs messages for the incoming HID reports.
The driver successfully loads when the USB transmitter is plugged in and I can receive the HID reports. I can also see that dispatchRelativePointerEvent()(for testing I overrode this method) is being called in response to the HID reports.
But the cursor refuses to move! It's as if the dispatch function fails to push the HID reports back into the subsystem for further processing.
I do have SIP disabled (or else the driver won't be loaded). I tried running the app (which loads the driver) from /Applications, but that doesn't work either. My entitlements all look fine too.
What could be going on?
TIA
Figured out the problem.
It's quite silly actually. All DriverKit drivers have to call RegisterService() from Start(). This was not explicitly called out in HIDDriverKit docs. And I didn't go through the DriverKit docs thoroughly enough before starting off with the HIDDriverKit.
Oh well..
It's quite silly actually. All DriverKit drivers have to call RegisterService() from Start(). This was not explicitly called out in HIDDriverKit docs. And I didn't go through the DriverKit docs thoroughly enough before starting off with the HIDDriverKit.
Oh well..