最新回复
(zz)
虚拟光驱技术基本探究
作者:未知 文章来源:佚名 点击数: 更新时间:2007-8-12
现在网上所流行的虚拟光驱软件也越来越多了比如说Deamon Tools ,Alcohol 120%,PowerISO,碟中碟3等。也算是各有所长,这篇文章主要是来探究虚拟光驱的技术。
首先,虚拟光驱是运行在Windows层面上的,是在Windows启动后加载驱动,在SYSTEM32下的的低层驱动加载后实现一个或多个虚拟出来的光驱。
对于Windows系统而言,在Win32层面上的软件并没有对硬件的控制和调用权限,因为Windows并没有直接去写硬件,而是通过系统内核(Kernel)作为交换层来实现对硬件的操作,在Windows的Kernel中,提供了最大限度的硬件抽象概念,把控制硬件相关的内核驱动等进行了封装,并提供API接口来调用,对于硬件设备的I/O处理和数据流传输交换,Windows平台中提供了一个接口框架,而具体的操作流程控制则是有驱动来完成的。使用I/O管理器在Kernel中注册的驱动并使用IRP数据包来进行管理的。虚拟光驱的原理就是向Kernel中注册一个虚拟的驱动程序来实现的。
我们都知道Windows中使用了“消息”这一数据进行各程序间的通讯的。在Kernel上Windows使用的I/O控制码(IOCTL)来实现对内核与驱动之间的数据流和控制流的传输。
这是一个CD-ROM的IOCTL定义代码:
引用:
IOTCL_CDROM_GET_DRIVE_GEOMETRY /*获取光盘的物理架构*/
IOTCL_CDROM_GET_LAST_SESSION /*取得光盘的最后一个区短*/
IOTCL_CDROM_CHECK_VERIFY /*检查光盘介质*/
IOTCL_CDROM_CLOSE-DOOR /*光盘进驱*/
IOTCL_CDROM_RAW-RWAD /*以RAW数据的方式读去光盘*/
IOTCL_CDROM_READ_TOC /*获取光盘存储结构*/
IOTCL-CDROMREAD /*读去光盘*/在现在的虚拟光驱中,组成的方式是这3步:
1.内核驱动
2.微端口过滤驱动
3.驱动文件系统过滤
在微端口过滤中,目的是来欺骗系统内核总线ATAPI.SYS的.有的虚拟光驱是自定义总线驱动的,在驱动文件过滤中,主要是来读取特殊的光盘数据架构和光轨架构.光盘文件过滤是一种特殊类型的驱动,它的作用是针对光盘数据格式的读写来进行规范和定义的,目前常见的光盘文件系统是ISO9660文件体系,在Windows层中有直接的系统函数支持,并不需要在来写文件支持.而是调用相关的API.
详情
回复
发表于 2007-10-24 21:31
| |
|
|
此帖出自嵌入式系统论坛
| ||
|
||
EEWorld Datasheet 技术支持