透明加密驱动开发心得
2009-01-13 17:42
393 查看
最近研究文件透明加密驱动的开发,基于MiniFilter
具体实现方式是在一文件尾加一块我自己的数据,
在
IRP_CREATE时中通过FltSetInformationFile ()
去掉这个数据块
在CleanUp中再写上去,
在研究中发现,
若自己管理计数Ref则
在Create时Ref++
在CleanUp中Ref--
最后Ref为0,
同样也可以在Close中Ref--
区别在于CleanUp中Ref为0的时间要先于Close.
还发现在CleanUp中,
若FltWriteFile以NOCACHE的方式进行,则不能成功
返回STATUS_NO_IMPLEMENT.
奇怪,原因没有弄清楚.
原因弄清楚了,因为参数不对,
对于NONCACHE方式,
WriteBuf
Length
ByteOffset
都必须是SectorSize(一般为512)对齐的.
还有一问题是文件要对齐才好操作
若一个文件是300个字节的.
|0 300|-------------Pad------------512|--------------------------Encrypt Tail-----------1024|
这样处理才好,
方法有很多种的,
这只是我一家之言.
HaHaH...
具体实现方式是在一文件尾加一块我自己的数据,
在
IRP_CREATE时中通过FltSetInformationFile ()
去掉这个数据块
在CleanUp中再写上去,
在研究中发现,
若自己管理计数Ref则
在Create时Ref++
在CleanUp中Ref--
最后Ref为0,
同样也可以在Close中Ref--
区别在于CleanUp中Ref为0的时间要先于Close.
还发现在CleanUp中,
若FltWriteFile以NOCACHE的方式进行,则不能成功
返回STATUS_NO_IMPLEMENT.
奇怪,原因没有弄清楚.
原因弄清楚了,因为参数不对,
对于NONCACHE方式,
WriteBuf
Length
ByteOffset
都必须是SectorSize(一般为512)对齐的.
还有一问题是文件要对齐才好操作
若一个文件是300个字节的.
|0 300|-------------Pad------------512|--------------------------Encrypt Tail-----------1024|
这样处理才好,
方法有很多种的,
这只是我一家之言.
HaHaH...
相关文章推荐
- 写给透明加密驱动开发的探索者
- 嵌入式Linux驱动开发之helloword心得
- Tiny6410驱动开发心得(一)
- SD卡驱动开发心得体会
- 嵌入式Linux驱动开发之helloword心得
- 驱动开发心得
- [置顶] TTEFS_User 应用层透明加密开发控件
- 利用Passthru开发NDIS驱动的一点心得
- 透明加密驱动写文件HEAD应该注意的问题
- 文件系统驱动开发心得
- windows内存管理1(做双缓存透明加密驱动必看)
- ZLG7290键盘驱动开发心得
- nanopi s2 驱动开发心得(二) s5p4418的GPIO函数
- 继续:基于Passthru的NDIS过滤驱动开发心得
- [转]ZLG7290键盘驱动开发心得
- [置顶] TTEFS_User 用户模式透明加密开发控件
- SD卡驱动开发心得体会
- 行为驱动开发学习心得(一)
- 基于文件过滤驱动的透明加密那点事儿
- ZLG7290键盘驱动开发心得——转载