阅读:1763回复:1
虚拟软驱的一个问题
我为了练手,最近在做一个虚拟软驱的工具。现在已经基本上完成,但是发现一个问题,找不到解决的资料。
这个工具是用一个自己做的软bus驱动枚举PDO,上面是一个功能驱动,直接向外暴露MOUNTDEV_MOUNTED_DEVICE_GUID接口。数据用适当大小的内存缓冲区记录,因为本身就是数字的,开始就可以读写,无须低格,当然磁盘上无文件系统,仍需格式化才能使用。低格的ioctl是处理了的,但没有处理format track ex。 现在的问题是模拟1.44的软盘很正常,可以被格式化,读写。但是其它类型全部不能正常用微软explorer格式化,不过可以加载镜像,然后使用。 我的IOCTL_DISK_GET_DRIVE_GEOMETRY返回模拟的媒体的信息,IOCTL_STORAGE_GET_MEDIA_TYPES返回软驱支持的所有媒体类型信息。这些媒体信息应该没错。 具体的现象是:假如模拟的驱动器包含1.44的能力,且媒体不是1.44的,这时explorer的格式化提示为1.44盘片,格式化会失败(还没执行format ioctl,可能检查时就出错了)。假如驱动器不包含1.44的能力,比如1.2的驱动器,explorer的格式化信息中根本没有媒体类型信息显示,格式化按键也没有反应。 请各位大虾帮忙看看是哪里的问题,马上就要完工的东西了,就算是小东西,我也想搞得实用性强一些,而且想搞清楚问题的原因。 |
|
沙发#
发布于:2010-06-07 09:42
我也想搞一个虚拟软驱,不知道怎么下手
|
|
|