阅读:1946回复:19
WinXp下的Cdrom
各位兄弟,我读IFSXp中的Class代码,觉得它可以实现光盘的写操作。但为什么有谣传说WinXp的Cdrom写有关的部分是OEM别人的代码哪?不知那位兄弟对此有研究,一起讨论讨论!
|
|
沙发#
发布于:2004-04-19 09:38
多谢大侠回复。我读的是IFSXp中的Class下边的Cdrom和ClassPnp的代码。
|
|
板凳#
发布于:2004-04-19 10:40
AllenZh首先感谢您的讨论。
是的,win2k中的CDRom确实是不能用来写的。但在Xp中,Cdrom多了MMC设备的支持,个人觉得它可以实现光盘的写操作。微软为什么不直接启用这个工能哪? 而且在实际跟踪时,IRP_MJ_WRITE没有经过CDRom和ClassPnp处理,就很奇怪了!难道它有另外的Filter来处理?但Cdrom上只有一个filter RedBook,难道是它吗? [编辑 - 4/19/04 by phenix_xiaomei] |
|
地板#
发布于:2004-04-19 15:31
在Cdrom的CdromStartIo中,就是将IRP_MJ_WIRTE或者IRP_MJ_READ转化成SRB(含有CDB结构)并调用IoCallDriver。
PassThrough是另一种执行SCSI指令的方式。它确实绕过了Class这一层。 我感到奇怪的就是微软既然在Class中实现了write,为什么不象Disk或者Tape一样直接进行光盘的读写,而要用filter采用passthough的方式? |
|
地下室#
发布于:2004-04-20 10:07
自己顶下。希望还有人来探讨一下。
|
|
5楼#
发布于:2004-04-21 09:49
微软的cdfs本身不支持写功能,所以微软不需要在光驱驱动里面加写支持。但是随着udf和刻录机的普及这个功能还是需要的,所以他会在以后的操作系统里面加上得。但是这种功能是要靠文件系统来支持的,所以说微软的文件系统方面要是没有大的改动得话,光驱写功能就算是实现了,也没多大意义。 同意。 现在所讨论的前提是文件系统支持了写。其实,文件系统所作的事情我想无非是两个功能:1、路径解析成物理扇区。2、对象访问的控制。真正要完成写功能的还是在设备驱动上的。 |
|
6楼#
发布于:2004-05-12 09:49
本网站就有的!
[编辑 - 5/12/04 by phenix_xiaomei] |
|
7楼#
发布于:2004-05-18 16:47
嗯!有道理。
但是刻录机、刻录软件,大家都严格的遵守MMC,应该问题不大。Longhorn中就会集成这个功能了。 |
|
8楼#
发布于:2004-05-18 16:54
在xp的CDRom和ClassPnp中,已经对IRP_MJ_WRITE解析成了SCSI指令。可UDF文件系统中却又没能提供对IRP_MJ_WRITE的支持,所以觉得很奇怪。设备驱动走在了文件系统的前面。而Explorer中的写的功能又是由其他方法来实现了(据说是ASPI的方式,由Roxio提供)。真是觉得杂乱无比。
|
|