In my program, I need to tell if a disk is a video DVD or just a file DVD.
From DeviceIoControl plus IOCTL_STORAGE_GET_MEDIA_TYPES_EX we can tell the driver is a CD-ROM or DVD-ROM. Surely CD-ROM can not read DVD disk. So CD-ROM driver is filtered.
But DVD-ROM can also read CD media. Use GetVolumeInformation we can tell if a media is a CDFS disk. So CD in a DVD-ROM is filtered.
Now I found both DVD video and DVD file are UDF. I remember when Autoplay of Windows could precisely tell between DVD and file DVD. So I google autoplay, and get this http://msdn.microsoft.com/msdnmag/issues/01/11/autoplay/ . It mentioned: The primary difference in the handling of CDs and DVD movies is the way Autoplay identifies the media type. Autoplay checks for the presence of the video_ts.ifo file inside the video_ts folder located in the media's root folder. So that my way.
我需要分辨出DVD影视盘.用DeviceIoControl和 IOCTL_STORAGE_GET_MEDIA_TYPES_EX 可以过滤掉CD-ROM驱动器,但是DVD驱动器也可以读CD,所以用GetVolumeInformation可以知道碟是否CDFS,从而过滤掉CD碟片.这样我发现DVD影视盘和DVD文件盘都可以是UDF.我琢磨了一下,想到系统的自动播放是怎么写的,google了一下得出:http://msdn.microsoft.com/msdnmag/issues/01/11/autoplay/ 这里提到Autoplay先分辨Media Type,然后查在根目录下是否有video_ts目录,video_ts目录下是否有video_ts.ifo.看来就是这样了. |