darkhawk
驱动牛犊
驱动牛犊
  • 注册日期2002-04-26
  • 最后登录2007-01-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1903回复:4

一个磁盘驱动格式化的问题[50分]

楼主#
更多 发布于:2004-04-05 15:32
我写了一个Win2K下的CardReader驱动,其实就是一个支持multi-LUN的U盘驱动。读写,拷贝都没问题,但是我在格式化的时候总是提示"无法完成格式化"。用chkdsk检查发现系统提示这是一个RAW设备(我用chkdsk检查时该disk是已经格式化过的,可以正常读写)???
  我看了很早以前Lu0斤别人回的帖子里提到了这个问题,说是"需要支持正确的DISK获取参数类的IO CONTROL"。基本上相关的IO Control我都实现了,但是我想可能在于一些参数我没有正确处理,但是,哪些参数才会产生这个问题呢?
  请各位高手指教!谢谢!
kangzh
驱动小牛
驱动小牛
  • 注册日期2004-03-09
  • 最后登录2012-08-06
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-07 17:00
你的包偏移可能有问题
darkhawk
驱动牛犊
驱动牛犊
  • 注册日期2002-04-26
  • 最后登录2007-01-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-06 10:09
IOCTL_DISK_GET_PARTITION_INFO这个IRP是由disk driver(即disk.sys)来完成的,我的驱动是在它的下面,代替原来的Usbstor.sys的功能,结构是FSD->disk.sys->Mydriver->USBD.sys,
在我的驱动里面,是收不到上面那个IRP的
我处理的几个和device属性有关的IRP是:
IOCTL_STORAGE_QUERY_PROPERTY
IOCTL_DISK_GET_DRIVE_GEOMETRY(这个实际没有处理,返回STATUS_NOT_SUPPORTED,因为系统会发IRP_MJ_SCSI来得到相应的细想你)
还有一个IRP_MN_QUERY_CAPABILITIES
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-05 21:58
处理IOCTL_DISK_GET_PARTITION_INFO的时候,在返回的PARTITION_INFORMATION结构中HiddenSectors值赋为1,同时PartitionLength值相应的减去一个扇区即512字节,其它值看着办。
darkhawk
驱动牛犊
驱动牛犊
  • 注册日期2002-04-26
  • 最后登录2007-01-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-05 15:45
另外,我的驱动可以正常显示盘符,磁盘属性里显示也是正常的,文件系统显示为FAT,但就是不能格式化,格式化时提示“无法完成格式化”。chkdisk检查,提示为:
"文件系统的类型是RAW, CHKDSK无法提供RAW驱动使用"
游客

返回顶部