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?
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.