文件系统驱动开发心得

本文分享了文件系统驱动开发的一些关键点,包括处理IRP_MJ_CREATE时的特殊情况,如打开目录对象、处理相对路径、提供准确的存储空间信息、支持文件内存映射以及正确处理卷的打开。此外,还提到了FltRegisterFilter函数注册文件系统迷你过滤驱动时可能出现的问题和解决方法。
摘要由CSDN通过智能技术生成

 * 打开文件系统对象的特殊方式

    文件系统驱动接收到IRP请求IRP_MJ_CREATE时,如果IrpSp->Flags指定了SL_OPEN_TARGET_DIRECTORY,则表示并不是真的要打开指定的文件系统对象,而是要检查对象是否可以删除已经它所在的目录是否可以进行创建操作。 通常这样的请求会发生在重命名文件系统对象之前。

 

* 文件系统驱动处理相对路径
    处理IRP_MJ_CREATE时,如果IRP的FileObject使用的相对路径,可以通过FileObject的RelatedFileObject获得相对路径所在的目录信息。

 

* 提供正确的存储空间信息
    处理IRP_MJ_QUERY_VOLUME_INFORMATION时,如果要查询的信息类型为FileFsSizeInformation或者FileFsFullSizeInformation,必须没有提供正确的存储空间参数,可能会造成资源管理器查看文件属性时崩溃。尤其是信息结构的BytesPerSector成员,千万不要设置为0。

 

* 支持文件的内存映射
    Windows的文件内存映射机制能够缓解文件的IO次数,比如CreateFileMapping函数。要实现最基本的文件映射支持,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值