我修改ramdisk做了个虚拟磁盘(该设备为PCI接口的存储设备,掉电后可保存数据),但在写完文件时(此时文件复制进度对话已消失),对系统断电,再重启后发现文件并没完全写入,出现文件丢失或损坏.之后跟踪驱动程序发现,在文件复制进度对话已消失时还在写磁盘,要过一段时间才能完全写...
全文
回复(21) 2007-04-27 09:17 来自版块 - 文件系统(过滤)驱动程序开发
表情
yaolixingVOID RamDiskCleanUp( IN PDEVICE_OBJECT DeviceObject ) /*++ Routine Description: This routine does the required cleaning like ...(2007-06-07 14:36)
qianjunhuaflush 在一个文件已经被映射到进程的地址空间(而且还是以image方式映射的),这个时候是不能调用的! 再说你的驱动也没有办法调用flush,那是在文件系统上面调用的.(2007-06-04 21:26)
ymzh1982引用第18楼looksail于2007-05-18 08:31发表的 : 建议测试一下Explorer在写完文件时(此时文件复制进度对话已消失),对系统断电,再重启后看文件是否正常 如果Explorer也是这样,我个人认为没必要管这个问题 另:FILE_NO_INTERME...(2007-05-18 09:39)
looksail建议测试一下Explorer在写完文件时(此时文件复制进度对话已消失),对系统断电,再重启后看文件是否正常 如果Explorer也是这样,我个人认为没必要管这个问题 另:FILE_NO_INTERMEDIATE_BUFFERING是要求512对齐的(2007-05-18 08:31)
ymzh1982虚拟盘驱动中IoGetCurrentIrpStackLocation(Irp得到的FileObject无效,FileObject我用IoGetDeviceObjectPointer得到了,但在虚拟盘驱动中调用CcFlushCache时出现Page fault错误,不知什么原因. ...(2007-05-17 19:18)
yaolixinglz...你一定不懂得怎样彻底刷新缓存,在FSFD的IRP_MJ_CLEANUP例程中(2007-05-05 23:36)
ymzh1982如果软驱不缓冲的话,有什么方法让文件系统把我的虚拟盘当软区一样不缓冲写入,仅仅将MediaType指定为软驱应该不行吧??(2007-04-29 20:17)
xx_qiang引用第12楼tooflat于2007-04-29 13:09发表的“”: flush 根目录 能不能在详细一点?(2007-04-29 15:24)
ymzh1982软驱应该不缓冲吧,要不拿出软盘文件就丢了,它怎么实现?(2007-04-29 14:08)
tooflat引用第6楼xx_qiang于2007-04-27 16:07发表的“”: 问一句,在ntfs格式下,$mft文件中的常驻内存部分在不是卸载磁盘的时候有办法刷新么? flush 根目录(2007-04-29 13:09)

返回顶部