+ if ((uiter = OSDynamicCast(IOUserIterator, iterator)))
+ {
+ obj = uiter->copyNextObject();
+ }
+ else if ((iter = OSDynamicCast(OSIterator, iterator)))
+ {
+ obj = iter->getNextObject();
+ if (obj) obj->retain();
+ }
+ else
+ {
+ return( kIOReturnBadArgument );
+ }