Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Getting Removable media excluding CD,DVD???



Hi all
  I want to get the Removable devices excluding CD,DVD.  I am using the
following code .  Is my approach right? 

In this code I am iterating the whole Media and trying to get only removable
media from them and also eliminate the CD,DVD from them.  How i can do
this?


kern_return_t FindAllDrives( io_iterator_t *mediaIterator )
{
    CFMutableDictionaryRef          classesToMatch;
    kern_return_t                    kernResult               = KERN_FAILURE;
  classesToMatch = IOServiceMatching( kIOMediaClass );     
          if ( classesToMatch == NULL )     goto Bail;
  CFDictionarySetValue( classesToMatch, CFSTR(kIOMediaWholeKey),
kCFBooleanTrue );
  kernResult = IOServiceGetMatchingServices( kIOMasterPortDefault,
classesToMatch, mediaIterator ); 
  if ( KERN_SUCCESS != kernResult
  qDebug("IOServiceGetMatchingServices returned 0x%08x\n", kernResult );   

Bail:
    return( kernResult );
}




    io_iterator_t     mediaIterator;
  char               bsdPath[ MAXPATHLEN ];
      char ModelNo[ MAXPATHLEN ];
kernResult = FindAllDrives( &mediaIterator );
     CFIndex maxPathSize;
     maxPathSize=sizeof(bsdPath);
     CFTypeRef          bsdPathAsCFString;
     CFTypeRef    object;
io_object_t          nextMedia;
       kernResult               = KERN_FAILURE;
  *bsdPath = '\0';
      CFNumberRef number = 0;
      CFDictionaryRef properties = 0;
      UInt64    ioSize;
      QString string1;
      QString dwDiskSize;
     while (( nextMedia = IOIteratorNext(mediaIterator)))
     {
                    kernResult = IORegistryEntryCreateCFProperties(nextMedia,
(CFMutableDictionaryRef *)&properties, kCFAllocatorDefault, kNilOptions);
          
          if (KERN_SUCCESS != kernResult)
          {                    
               
                     goto Next;
          }
     
          object = CFDictionaryGetValue( properties, CFSTR( kIOMediaRemovableKey
) );
        if ( object  ) 
           {
          
                    number = (CFNumberRef) CFDictionaryGetValue(properties,
CFSTR(kIOMediaSizeKey));
                         if(!number)
                               QMessageBox::information(0,"Size Missing","kIOMediaSizeKey property
missing");
                         if (!CFNumberGetValue(number, kCFNumberLongLongType, &ioSize))
  {
                               goto Next;
                         }
                    CFDictionaryGetValue(properties, CFSTR(kIOBSDNameKey));
                         if ( bsdPathAsCFString )
                         {               
              size_t devPathLength;
            * bsdPath = '\0';
                      strcpy(bsdPath, _PATH_DEV);
                               strcat(bsdPath, "r");
                               devPathLength = strlen(bsdPath);
                               if (CFStringGetCString(bsdPathAsCFString, bsdPath + devPathLength,
maxPathSize - devPathLength, kCFStringEncodingUTF8))
                               {
                          string1=     QString::null     ;
                               string1=string1.setNum(ioSize);
      }
    }


Thanks



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Carbon-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/carbon-dev/email@hidden

This email sent to email@hidden



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.