BENMAOB
驱动牛犊
驱动牛犊
  • 注册日期2008-02-04
  • 最后登录2009-10-12
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望42点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
阅读:1562回复:11

大家讨论一下,做一个有创意的磁盘驱动

楼主#
更多 发布于:2008-03-07 15:51
做一个纯粹的虚拟磁盘,磁盘的内容由应用程序组织,比如,可以来自不同的盘,网络。用户用起来是个盘,实际上数据可能在不同的地方。
例如,用户把一个文件COPY到此盘中,实际并没有COPY过来,只是用户看起来和用起来像在这个盘内了。
驱网无线,快乐无限
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2008-03-07 17:05
winfs
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
BENMAOB
驱动牛犊
驱动牛犊
  • 注册日期2008-02-04
  • 最后登录2009-10-12
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望42点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-03-07 18:44
不愧老大,知识面就是宽啊,好像微软不做了,大家一块弄出来算了。
驱网无线,快乐无限
tonyfirst1
驱动牛犊
驱动牛犊
  • 注册日期2008-02-26
  • 最后登录2010-08-06
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望138点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-03-07 21:49
filedisk改改就可以了..
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
地下室#
发布于:2008-03-08 00:13
LZ的设想确实接近Winfs了~
没有战争就没有进步 X3工作组 为您提供最好的军火
BENMAOB
驱动牛犊
驱动牛犊
  • 注册日期2008-02-04
  • 最后登录2009-10-12
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望42点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-03-08 02:16
看了FILEDISK的代码,觉得IRP_MJ_READ前驱动做了很多工作了,已经定位了磁盘(映像文件)的位置了,难道我们还要给他反算回来,就是反算回具体文件的读取位置?如果我理解那样,就真要研究磁盘结构了
驱网无线,快乐无限
jl2004
驱动小牛
驱动小牛
  • 注册日期2007-04-10
  • 最后登录2011-02-22
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望276点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-03-08 10:26
这个创意不错
向前,向前,向前....
tonyfirst1
驱动牛犊
驱动牛犊
  • 注册日期2008-02-26
  • 最后登录2010-08-06
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望138点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-03-08 12:17
楼主的想法,我也想过,用FileDisk修改的方法我也想过:

FileDisk现在是打开一个文件句柄作为修数据的物理位置,

现在我们无非是要维护多个HANDLE,就是以个句柄数组,

对于这个HANDLE数组,每个HANDLE我们固定的表示一个物理介质(文件,磁盘,分区等)

那么这些物理介质实际上就有序的虚拟成了一个大的卷!(我们应该把相关信息,有序的存在注册表上)

那么真正修数据的时候,如果数据的长度是跨物理介质的,那么就要把数据分成多段从不同的物理介质上去读取(或者是写)了!

另外就是DEVICEIOCONTROL查询的信息,就有点不好说了,反正我觉得是不能如实的反应了,比如有512B的扇区,也有4096B的扇区。那么就只能按照我们自己的规则返回给应用程序就好了。
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
8楼#
发布于:2008-03-08 12:26
能在上面跑操作系统就更好了~
没有战争就没有进步 X3工作组 为您提供最好的军火
BENMAOB
驱动牛犊
驱动牛犊
  • 注册日期2008-02-04
  • 最后登录2009-10-12
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望42点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-03-09 00:52
to killvxk,写文件没问题,安装程序也没问题吧。跑系统要在启动前做工作了,没有了解。
to tonyfirst1 能在IRP_MJ_READ前作拦截就好了。
驱网无线,快乐无限
clicx
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2008-03-14 20:46
基本上就是网络盘。
---内核开发合作或提供基础技术服务QQ:22863668 ---
SaunterCloud
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2014-10-15
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望50点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-03-27 16:14
修改FileDisk的方法我实现过,可以把多个文件组合虚拟成一个大磁盘(试过本地文件,没试过网络文件)。至于你说的扇区大小,虚拟成一个盘后格式化,扇区大小固定的了。

lz说的copy一个文件过来,看起来在磁盘中,实际不在。我觉得这应该属于文件系统的驱动,磁盘驱动就没有文件的概念。

引用第7楼tonyfirst1于2008-03-08 12:17发表的  :
楼主的想法,我也想过,用FileDisk修改的方法我也想过:

FileDisk现在是打开一个文件句柄作为修数据的物理位置,

现在我们无非是要维护多个HANDLE,就是以个句柄数组,
.......
游客

返回顶部