У меня проблема с приложением, которое отслеживает изменения на шине USB.В частности, если я хочу получить список подключенных USB-сервисов, я использую код ниже.Странно то, что некоторые пользователи (и, конечно, не мои машины) не видят одно или два устройства.Эти устройства отображаются в IORegistryExplorer и показывают зарегистрированных.
Машины, для которых это не работает, также работают под управлением 10.6 и также являются MacBook Pro.(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);
}