More than one DriverKit module in an Application?

Since Logitech isn't updating their mouse software for M1 after almost two years, i'm going to try to make my own 'driver' for it. In doing so I want to create a virtual HID device that i can tell to send joystick button presses when I press my mouse's macro keys (G600). Looks like to do this properly i would want to create two drivers, one as an HID service IOUserHIDEventService that translates the mouse's HID reports, and an IOUserUSBHostHIDDevice that will create a new HID device with its own descriptor and reports. So that begs the question, can an application contain more than one driver module, or is it limited to one at a time?

Answered by Frameworks Engineer in 727058022

Hi EKLynx

Multiple DEXTs should not be needed. A DEXT can specify multiple personalities under the IOKitPersonalities key in the DEXT's Info.plist. During device matching, the system will evaluate each of your DEXT's personalities. The personality that matches has its IOUserClass instantiated.

See "Specify Criteria for Matching Your Services Against Devices" in the Creating a Driver Using the DriverKit SDK article.

Accepted Answer

Hi EKLynx

Multiple DEXTs should not be needed. A DEXT can specify multiple personalities under the IOKitPersonalities key in the DEXT's Info.plist. During device matching, the system will evaluate each of your DEXT's personalities. The personality that matches has its IOUserClass instantiated.

See "Specify Criteria for Matching Your Services Against Devices" in the Creating a Driver Using the DriverKit SDK article.

More than one DriverKit module in an Application?
 
 
Q