killerstar
驱动牛犊
驱动牛犊
  • 注册日期2010-07-13
  • 最后登录2010-09-27
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2003回复:9

想在filedisk的基础上实现磁盘的可拓展,请教下这个能在磁盘驱动这层实现么

楼主#
更多 发布于:2010-09-27 09:18
想在filedisk的基础上实现磁盘的可拓展,相当于就是 在磁盘已满时候能够进行拓展空间,不知道这个能在磁盘驱动这层实现不,大家能提示下不~~
N
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
沙发#
发布于:2010-09-27 09:57
用户被禁言,该主题自动屏蔽!
killerstar
驱动牛犊
驱动牛犊
  • 注册日期2010-07-13
  • 最后登录2010-09-27
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-09-27 10:20
回 1楼(wanghui219) 的帖子
先谢谢了哈~~  不过这又引发了我另外一个疑问了,就是虚拟磁盘的大小由谁决定,比如说filedisk里面由一个img文件虚拟出一个盘,那么这个盘的大小事由img文件决定还是由咱们写的驱动决定呢(如果是img文件决定的话,那岂不是这个盘没法写东西,因为img文件大小已经固定了呀),实际用filedisk的时候,我随便弄了个img文件,当时好像是生成了一个8M大小的盘.. ... 这个 大小难道是由系统决定的 最小符合单位?
N
killerstar
驱动牛犊
驱动牛犊
  • 注册日期2010-07-13
  • 最后登录2010-09-27
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-09-27 10:27
... .... 好像这个 8M 是由使用的时候手动决定的... ...,现在需要做的是如果 开始 决定了 大小为8M,但是如果我要写入超过 8M的东西该如何实现了... ...(我说的动态拓展就是这个意思了 )
N
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
地下室#
发布于:2010-09-27 10:48
用户被禁言,该主题自动屏蔽!
killerstar
驱动牛犊
驱动牛犊
  • 注册日期2010-07-13
  • 最后登录2010-09-27
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2010-09-27 12:26
回 4楼(wanghui219) 的帖子
~!。。 .  刚有点事情耽误了。。。 先谢谢了哈 ~~
也就是说如果是FAT 盘的话 应该能通过修改 DBR BPB实现,不过NTFS盘能这么弄么
 
N
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
6楼#
发布于:2010-09-27 14:17
用户被禁言,该主题自动屏蔽!
killerstar
驱动牛犊
驱动牛犊
  • 注册日期2010-07-13
  • 最后登录2010-09-27
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2010-09-27 19:32
回 6楼(wanghui219) 的帖子
~!~    先把想法列出来算了 ~!~  
N
jeremy_guo
驱动牛犊
驱动牛犊
  • 注册日期2010-07-19
  • 最后登录2011-05-31
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2010-10-06 11:23
虚拟磁盘加载时,操作系统会发IRP到driver,询问次磁盘的结构和空间大小。空间大小应该是这是决定的。
jeremy_guo
驱动牛犊
驱动牛犊
  • 注册日期2010-07-19
  • 最后登录2011-05-31
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2010-10-06 11:47
IRP_MJ_DEVICE_CONTROL 处理 IOCTL_DISK_GET_DRIVE_GEOMETRY 和 IOCTL_DISK_GET_LENGTH_INFO 时决定磁盘的大小。
当然,driver处理这些IOCTL时也要根据image 的大小。如果汇报的磁盘容量超过image, 操作系统就可能会访问虚拟磁盘外部的扇区。IRP_MJ_READ 和 IRP_MJ_WRITE 要是能支持对“外部“扇区的访问就相当于吧虚拟磁盘扩大了。
还要注意文件系统,磁盘是按照最开始的大小格式化的。即使磁盘变大了,可能文件系统也不会支持增加的扇区,还要重新格式化
游客

返回顶部