阅读:2192回复:3
求助 关于MINIFILTER缓存处理
刚接触驱动也是刚接触MINIFILTER
领导今天给了一个问题不知道是测试还是客户的要求 使用Minifilter框架在内存中分配20-50M(大小自定)内存作为缓冲 第一次从文件中读取的数据记录在内存中,下次读取同样的便从缓冲读取 我决定使用SCANNER来做基本框架,但是内存的处理不是很确定,请大家给个指点。 是类似系统缓存管理。在分配的20M内存也建立类似VACB的东西? 还是我想太复杂了? 周二的任务 周五交DEMO 不知道能不能搞定 请大家指点下,建立个简单模型也好。谢谢 |
|
禁止发言
|
沙发#
发布于:2010-08-18 10:40
用户被禁言,该主题自动屏蔽! |
板凳#
发布于:2010-08-19 20:34
谢谢wanghui219回复。
可能是我没说清楚。 是类似读取一个文件其中的内容放进内存,再多次写进别的位置。 把要写的内容放进内存中别去磁盘读取要快得多。具体应用我也不清楚,说不准是个测试题。 完成是我的首要目标。 在此感谢 |
|
地板#
发布于:2010-08-21 08:37
做法到是可以事先分配一个zone(注:不要在driverentry里,否则分配失败),每次ExAllocatePoolFromZone,可以4K一单元,大于4K的切割成4K一单位,挂list的时候记录好off和len,第一次读取的时候copy data出来,下次再读取list里的内容根据off和len的界限定位拷回去
那么截获读操作时候 将缓存和偏移长度记录。我如何保证能读完整个文件? 读完文件以后要写到别的位置 我自己创建写操作? 一个很苦恼的问题啊 没思路 请大家指点下 总体大概就是想吧一个30-50M的文件整体放入内存 这样多吃写到别的文件时候 速度比读取磁盘快 请大家指点下 |
|