Detect DVD Burners in Windows
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.
What you want is the Image Mastering API (IMAPI). To list the available devices you can use IDiscMaster::EnumDiscRecorders
.
::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?"
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.
精彩评论