After a full clean, build, and reboot, the IOServiceGetMatchingService(DriverKitAcxxx) call still fails at runtime, returning IO_OBJECT_NULL. No, it means your code is wrong and you're looking for the wrong object. From your earlier post, here is the IORegistry entry for your device: +-o DriverKitAcxxx | IOUserClass = DriverKitAcxxx | IOUserServerName = com.accusys.Acxxx.driver ... Pulling that apart in details: +-o DriverKitAcxxx This is your Service Name. In a DEX, it's set through IOService.SetName and defaults to the value of your IOUserClass. You create a match dictionary for it using IOServiceNameMatching(). IOUserSCSIParallelInterfaceController-> This is the name of the class in the kernel. It was configured by your DEX through your IOClass property, exactly as it would have been in a KEXT. You create a match dictionary for it using IOServiceNameMatching(). Making sure this is entirely clear, the class DriverKitAcxxx does NOT exist in the kernel. Instead, there is an instance of IOUserSCS
Topic:
App & System Services
SubTopic:
Drivers
Tags: