请问,这里有没有哪位高手知道虚拟光驱的原理?或者那里可以找到相关文章?我有一些虚拟光驱软件的原文件,但是不懂得原理,又没有文档, 非常难弄明白怎么回师啊~~
还望各位高手赐教~~~~

解决方案 »

  1.   

    呵呵,我也正想研究这个,楼主能否把你的源文件发一份给我呢,感激不尽!
    [email protected]
      

  2.   

    www.google.com
    到这里查查,说不定有
      

  3.   

    一.虚拟光驱的特点及用途 
      1.什么是虚拟光驱 
      虚拟光驱是一种模拟(CD-ROM)工作的工具软件,可以生成和你电脑上所安装的光驱动能一模一样的虚拟光允,一般光驱能做的事虚拟光驱一样可以做到,这的工作原理是先虚拟出一部或多部虚拟光驱后,将光盘上的应用软件,镜像存放在硬盘上,并生成一个虚拟光驱的镜像文件,然后就可以Windows95/98/NT中将此镜像文件放入虚拟光驱中来使用,所以当您日后要启动此应用程序时,不必将光盘放在光驱中,也就无需等待光允的缓慢启动,只需要在插入图标上轻按一下,虚拟光盘立即装入虚拟光驱中运行,快速又方便。  2.虚拟光驱的特点及用途 
      虚拟光驱有很多一般光驱无法达到的功能,例如运行时不用光盘,即使没用光驱也可以,同时执行多张光盘软件,快速的处理能力、容易携带等。虚拟光驱具有以下特点及用途:
      (1).高速CD-ROM
      虚拟光驱直接在硬盘上运行,速度可达200X;虚拟光驱光驱的反应速度非常之快,播放影象文件流畅不停顿。一般硬盘的传输速度为10-15MB/S左右,换算成光驱传输速度(150K/S)等于100X。如今主板大都集成Ultra DMA硬盘控制器,其传输速度更可高达33M/S(220X)
      (2).笔记本最佳伴侣
      虚拟光驱可解决笔记本电脑没有光驱、速度太慢、携带不易、光驱耗电等问题;光盘镜像可从其它电脑或网络上复制过来。
      (3).MO最佳选择
      虚拟光驱所生成的光盘(虚拟光盘)可存入MO盘,随身携带则MO盘就成为“光盘MO”,MO光驱合一,一举两得。
      (4).复制光盘
      虚拟光驱复制光盘时只产生一个相对应的虚拟光盘文件,因此非常容易管理;并非将光盘中成百上千的文件复制到硬盘,此方法不一定能够正确运行,因为很多光盘软件会要求在光驱上运行,而且删除管理也是一个问题;虚拟光驱则完全解决了这些问题。
      (5).运行多个光盘
      虚拟光驱可同时运行多个不同光盘应用软件。例如,我们可以在一台光驱上观看大英百科全书,同时用另一台光驱安装“金山词霸2000”,用真实光驱听CD唱片。这样的要求在一台光驱上是无论如何也做不到的。
      (6).压缩
      虚拟光驱一般使用专业的压缩和即时解压算法对于一些没有压缩过的文件,压缩率可达50%以上;运行时自动即时解压缩,影像播放效果不会失真。
      (7).光盘塔
      虚拟光驱可以完全取代昂贵的光盘塔,可同时直接存取无限量光盘,不必等待换盘,速度快,使用方便,不占空间又没有硬件维护困扰。
      

  4.   

    虚拟光驱应该是个驱动程序,一般的光驱驱动是给ide总线驱动发送IRP,你只直接操作文件就行,做起来非常非常麻烦。
      

  5.   

    flinming(flinming) 
    非常感谢,
    但是光是这些我也知道,
    我就是想知道虚拟光驱使怎么工作的,背后的原理是什么?
    我想实现虚拟光驱应该少不了汇编语言把,但是到什么程度?流程如何,这些都是不知道的阿~~~
    说夸张点,就是我想自己写一个虚拟光驱,而不是用
    还望赐教~~
      

  6.   

    duqiang2050(杜杜) 
    你的意思是说,实际上就是再windows 下面写一个符合wdm的驱动程序?
    如果是这样的话,对于windows那边, 是没问题了,但是对于硬件那边呢?
    由于实际上不存在这个设备,驱动程序应该怎样将硬盘上的一个区域模拟成一个ide设备呢?
    这一部分是否必须要用到汇编才可以?
      

  7.   

    一般市面上的虚拟光区的实现方法有两种
    一种是写一个miniport驱动, 一种是写一个port驱动.
      

  8.   

    我想虚拟光驱应该用DDK可以实现 估计类似于驱动 ,希望高手指点。
      

  9.   

    用过dos下的subst命令吗?虚拟光驱应该也相差不会太远吧。
      

  10.   

    www.sourceforge.com 网站上有一个叫 vaporcd 的虚拟光驱软件, 可以参考一下.
      

  11.   

    几天没来,没想到这么多会了阿,
    还多谢各位的启发,经过几天的研究,发现,正如seaquester()仁兄说的一样,多半是这么实现的,
    我现在准备用写一个scsi miniport driver 的办法,因为大部分好像都是虚拟的scsi光驱吧,
    多谢~~
    另外,除了seaquester 提供的例子,这里还有一个小例子:
    虽然是在95下,但很有借鉴意义:
    http://www.programmersheaven.com/zone15/cat245/2512.htm
    欢迎交流