_MAC_OS_X_VERSION_MAX_ALLOWED is a preprocessor macro based on the SDK version and is available based on the macOS version running the code, see here. Switching runtime availability checking to compile-time.Library/Extensions/WirelessGamingReceiver.kext - no compatible dependency found for .ĭiagnostics for /Library/Extensions/WirelessGamingReceiver.kext: Library/Extensions/WirelessGamingReceiver.kext - no compatible dependency found for. Notice: /Library/Extensions/WirelessGamingReceiver.kext has debug properties set. The attached sysdiagnose is from after a successful match, after the device has been disconnected from the computer. plist to match to whatever device you would like. It does not seem to matter what type of device is connected, so you should be able to edit the.
I have been using both an Xbox One controller and a Steel Series Rival 300 mouse to match to both report descriptor types. Adjusting the content of the "newReportDescriptor" method to swap between the two included report descriptors reproduces the bug. Kexts providing a gamepad report descriptor are retained, while mouse report descriptors are unloaded properly.Īttached is an Xcode project that can be used to recreate the error. A gamepad report descriptor should be able to be unloaded the same as a mouse report descriptor. The content of a report descriptor should not cause a kext to be retained. Attempt to unload the driver with kextunload. Load and match the driver to a USB device. Return a report descriptor that describes a gamepad. Implement "newReportDescriptor" in the subclass. For example, using two report descriptors from the USB HID specification, a "mouse" descriptor will unload normally after being matched to, but a "game pad" descriptor will be retained and becomes unable to be unloaded.Ĭreate an IOKit driver subclassing IOHIDDevice (also happens with IOUSBHostHIDDevice).
I have come upon an issue with IOKit kexts where the content of a report descriptor returned from "newReportDescriptor" will cause a kext to be retained after a match.
What follows is the full content of my bug report to Apple, with my sysdiagnose omitted: HID Report Descriptor content prevents kext unload