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.
Asked
Active
Viewed 376 times
0
-
You need to at least specifiy an operating system... – humbagumba Jun 30 '10 at 15:56
-
1This 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 Answers
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