catface
驱动小牛
驱动小牛
  • 注册日期2009-01-11
  • 最后登录2014-03-09
  • 粉丝1
  • 关注1
  • 积分155分
  • 威望1341点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分2分
阅读:2008回复:3

求助 关于MINIFILTER缓存处理

楼主#
更多 发布于:2010-08-17 19:50
刚接触驱动也是刚接触MINIFILTER
领导今天给了一个问题不知道是测试还是客户的要求
使用Minifilter框架在内存中分配20-50M(大小自定)内存作为缓冲
第一次从文件中读取的数据记录在内存中,下次读取同样的便从缓冲读取

我决定使用SCANNER来做基本框架,但是内存的处理不是很确定,请大家给个指点。
是类似系统缓存管理。在分配的20M内存也建立类似VACB的东西?
还是我想太复杂了?
周二的任务 周五交DEMO 不知道能不能搞定
请大家指点下,建立个简单模型也好。谢谢
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
沙发#
发布于:2010-08-18 10:40
用户被禁言,该主题自动屏蔽!
catface
驱动小牛
驱动小牛
  • 注册日期2009-01-11
  • 最后登录2014-03-09
  • 粉丝1
  • 关注1
  • 积分155分
  • 威望1341点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分2分
板凳#
发布于:2010-08-19 20:34
谢谢wanghui219回复。
可能是我没说清楚。
是类似读取一个文件其中的内容放进内存,再多次写进别的位置。
把要写的内容放进内存中别去磁盘读取要快得多。具体应用我也不清楚,说不准是个测试题。
完成是我的首要目标。
在此感谢
catface
驱动小牛
驱动小牛
  • 注册日期2009-01-11
  • 最后登录2014-03-09
  • 粉丝1
  • 关注1
  • 积分155分
  • 威望1341点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分2分
地板#
发布于:2010-08-21 08:37
做法到是可以事先分配一个zone(注:不要在driverentry里,否则分配失败),每次ExAllocatePoolFromZone,可以4K一单元,大于4K的切割成4K一单位,挂list的时候记录好off和len,第一次读取的时候copy data出来,下次再读取list里的内容根据off和len的界限定位拷回去

那么截获读操作时候 将缓存和偏移长度记录。我如何保证能读完整个文件?
读完文件以后要写到别的位置 我自己创建写操作?
一个很苦恼的问题啊 没思路
请大家指点下

总体大概就是想吧一个30-50M的文件整体放入内存  这样多吃写到别的文件时候 速度比读取磁盘快
请大家指点下
游客

返回顶部