阅读:1903回复:4
一个磁盘驱动格式化的问题[50分]
我写了一个Win2K下的CardReader驱动,其实就是一个支持multi-LUN的U盘驱动。读写,拷贝都没问题,但是我在格式化的时候总是提示"无法完成格式化"。用chkdsk检查发现系统提示这是一个RAW设备(我用chkdsk检查时该disk是已经格式化过的,可以正常读写)???
我看了很早以前Lu0斤别人回的帖子里提到了这个问题,说是"需要支持正确的DISK获取参数类的IO CONTROL"。基本上相关的IO Control我都实现了,但是我想可能在于一些参数我没有正确处理,但是,哪些参数才会产生这个问题呢? 请各位高手指教!谢谢! |
|
沙发#
发布于:2004-06-07 17:00
你的包偏移可能有问题
|
|
板凳#
发布于: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 |
|
地板#
发布于:2004-04-05 21:58
处理IOCTL_DISK_GET_PARTITION_INFO的时候,在返回的PARTITION_INFORMATION结构中HiddenSectors值赋为1,同时PartitionLength值相应的减去一个扇区即512字节,其它值看着办。
|
|
地下室#
发布于:2004-04-05 15:45
另外,我的驱动可以正常显示盘符,磁盘属性里显示也是正常的,文件系统显示为FAT,但就是不能格式化,格式化时提示“无法完成格式化”。chkdisk检查,提示为:
"文件系统的类型是RAW, CHKDSK无法提供RAW驱动使用" |
|