IOServiceGetMatchingServices在某些Mac上找不到某些设备
||
我的应用程序存在问题,该应用程序监视USB总线的更改。具体来说,如果我想获取随附的USB服务列表,请使用以下代码。奇怪的是有些用户(通常不是我的机器)看不到一两个设备。
这些设备确实会显示在IORegistryExplorer中,并显示已注册。
不能正常运行的机器也正在运行10.6,同时也是MacBook Pro。
CFMutableDictionaryRef service_properties = CFDictionaryCreateMutable(NULL,0,NULL,NULL);
CFMutableDictionaryRef child_props = CFDictionaryCreateMutable(NULL,0,NULL,NULL);
kr = IOServiceGetMatchingServices(kIOMasterPortDefault,
IOServiceNameMatching(\"AppleUSBEHCI\"), &io_objects);
if(kr != KERN_SUCCESS)
exit(1);
while((io_service= IOIteratorNext(io_objects)))
{
kr = IORegistryEntryCreateCFProperties(io_service, &service_properties, kCFAllocatorDefault, kNilOptions);
io_iterator_t iter;
kr = IORegistryEntryGetChildIterator(io_service, kIOServicePlane, &iter);
io_registry_entry_t child;
while( (child = IOIteratorNext( iter )))
{
kr = IORegistryEntryCreateCFProperties(child, &child_props, kCFAllocatorDefault, kNilOptions );
NSLog(@\"%@\",child_props);
}
IOObjectRelease(io_service);
}
没有找到相关结果
已邀请:
3 个回复
稼悸
,
,
)进行匹配。只要他们发明了新的控制器标准(例如,自2012年以来在新Mac中为
)(针对USB 3兼容性),此操作就会失败。 您可能想要做的是与ѭ5进行匹配,这就是我想匹配系统中的每个设备时所要做的。这也是在示例代码6中所做的。
苦诫
凄嘛姥
应该在您的机器上显示活动的USB状态