USB device shows twice in IORegistryExplorer when unplugged - as live and as terminated
I have a USB device that I have developed a codeless kext for to keep OS X from preemptively capturing it. The kext just makes the device match with a different kext in the IOBluetoothFamily.kext.
I am noticing an odd behavior when I perform the following:
- Reboot just to clear the IO Registry.
- Start IORegistryExplorer.
- Plug a device in, get: registered, matched, active with retain 10, busy 0.
- Unplug device, entry goes red (terminated object).
- Update the registry: Terminated object remains (as expected). Also a non-terminated object shows up with the same contents as the terminated, except not registered, not matched, not acti开发者_StackOverflowve, retain 4, busy 2.
- Clear terminated objects - only the red entry will go away. The other entry remains.
I am not running any other application that would access the device.
Is it possible that the kext I am matching to has a bug?
From my experience IORegistryExplorer (and USB Prober) have a tendency to keep objects alive (often making it impossible to unload kexts), closing IORegistryExplorer tends sorts out the problem.
精彩评论