views:

57

answers:

3

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.

A: 

::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
+2  A: 

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

torak
A: 

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