0

Is there anyway to dectect available DVD burners in a windows system using c++? I know how to detect all available drives but I would like to be able to detect which ones have the ability to burn DVD media.

Andreas Rejbrand
  • 105,602
  • 8
  • 282
  • 384
thecaptain0220
  • 2,098
  • 5
  • 30
  • 51
  • You need to at least specifiy an operating system... – humbagumba Jun 30 '10 at 15:56
  • 1
    This looks fairly interesting: http://msdn.microsoft.com/en-us/magazine/cc163992.aspx – Evan Teran Jun 30 '10 at 15:57
  • It should also be noted that starting with windows xp, there is a built in API for burning. Which may be able to do what you want and more. – Evan Teran Jun 30 '10 at 16:01
  • @humbagumba - I think he specified windows in the question, though I guess "a windows system" could refer to a generic windowing system. – chollida Jun 30 '10 at 16:15
  • I'm pretty sure that the question didn't say windows before it was edited and if it did, I guess I need new glasses :) – humbagumba Jun 30 '10 at 16:22

3 Answers3

3

What you want is the Image Mastering API (IMAPI). To list the available devices you can use IDiscMaster::EnumDiscRecorders.

torak
  • 5,684
  • 21
  • 25
0

::GetDriveType() ::GetVolumeInformation()

Are the two APIs that I know of that may get you what you need to know.

However, neither has a clear & obvious way of obtaining "is this DVD drive a recorder?"

Mordachai
  • 9,412
  • 6
  • 60
  • 112
0

You can get GET_MEDIA_TYPES (see http://msdn.microsoft.com/en-us/library/aa363264.aspx) with respect of IOCTL_STORAGE_GET_MEDIA_TYPES_EX (see http://msdn.microsoft.com/en-us/library/aa363413.aspx). You can use if like in http://msdn.microsoft.com/en-us/library/aa363147.aspx. Information from GET_MEDIA_TYPES has all information which you need.

Oleg
  • 220,925
  • 34
  • 403
  • 798