tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
40楼#
发布于:2007-07-19 16:02
和杀软冲突跟用不用generic table没关系,generic table只是一个用来组织数据的算法实现,和hashtable没有本质区别。
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
41楼#
发布于:2007-07-19 16:13
单独的generic table我没有测试过,
应该来说是不会冲突的,
最有可能是不是加入了事件同步引起的
KeInitializeEvent(&Event, NotificationEvent, FALSE);
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
另外存文件名会导致这个表变得很大,也有可能引起死机
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
42楼#
发布于:2007-07-19 17:21
引用第41楼lsxredrain于2007-07-19 16:13发表的  :
单独的generic table我没有测试过,
应该来说是不会冲突的,
最有可能是不是加入了事件同步引起的
KeInitializeEvent(&Event, NotificationEvent, FALSE);
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
.......



KeInitializeEvent(&Event, NotificationEvent, FALSE);
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
=======================================================


你是指
KeInitializeEvent(&FileCtxPtr->Event, SynchronizationEvent, TRUE);
。。。
KeWaitForSingleObject((&FileCtxPtr->Event Executive, KernelMode, FALSE, NULL);
吗?
这个倒是有可能。



“存文件名导致死机”,你是指存文件名的内存消耗太大,导致系统内存枯竭吧,这个用任何方法都会有这个问题,不过内存枯竭不一定就要让他死机啊,优雅地处理内存分配失败就可以了,还有对每个打开的文件只保存一份文件名,对内存的消耗已经尽量达到最小了。
而且算一下就知道,就算同时打开几万个文件,内存也才消耗几M
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
43楼#
发布于:2007-07-19 18:01
对,就是这个SynchronizationEvent,,在瑞星下会导致系统变得很慢慢,甚至死机
老大什么时候把这个bug修改一下
内存大小是小事,主要是表弄得太大,效率会很低的,
几万文件就是几万个元素
我一般只存打开过的密文,其他文件都不管的
jl2004
驱动小牛
驱动小牛
  • 注册日期2007-04-10
  • 最后登录2011-02-22
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望276点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
44楼#
发布于:2007-07-20 10:31
为什么要把
//    DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = SfDirectoryControl;
//    DriverObject->MajorFunction[IRP_MJ_SET_INFORMATION] = SfSetInformation;
这两个函数//掉,它们没用吗?
向前,向前,向前....
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
45楼#
发布于:2007-07-20 11:35
我只测试了Read和Write,所以把不相关的屏蔽了,你可以增加的
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
46楼#
发布于:2007-07-20 12:29
引用第43楼lsxredrain于2007-07-19 18:01发表的  :
对,就是这个SynchronizationEvent,,在瑞星下会导致系统变得很慢慢,甚至死机
老大什么时候把这个bug修改一下
内存大小是小事,主要是表弄得太大,效率会很低的,
几万文件就是几万个元素
我一般只存打开过的密文,其他文件都不管的


你可以把它分成若干个表啊,我那个代码只是示例,一般我在实际中都会分成128个表,
然后通过FsContext MOD 128作为表数组的索引,通常情况下一个表的数据小于10个。
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
47楼#
发布于:2007-07-20 12:30
引用第43楼lsxredrain于2007-07-19 18:01发表的  :
对,就是这个SynchronizationEvent,,在瑞星下会导致系统变得很慢慢,甚至死机
老大什么时候把这个bug修改一下


这个只能通过产品的策略来避免。
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
48楼#
发布于:2007-07-20 14:53
受教了,我的hash表也是分成128个表来处理的
产品策略如何避免SynchronizationEvent呢?
有点想不明白,
kabunhi
驱动牛犊
驱动牛犊
  • 注册日期2007-06-27
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分461分
  • 威望57点
  • 贡献值0点
  • 好评度46点
  • 原创分0分
  • 专家分0分
49楼#
发布于:2007-07-20 15:34
学习中。。。。。。
ldljlzw
驱动中牛
驱动中牛
  • 注册日期2002-03-16
  • 最后登录2014-01-02
  • 粉丝1
  • 关注0
  • 积分1021分
  • 威望372点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
50楼#
发布于:2007-07-20 17:16
先顶!
jl2004
驱动小牛
驱动小牛
  • 注册日期2007-04-10
  • 最后登录2011-02-22
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望276点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
51楼#
发布于:2007-07-23 11:32
若想在sfread中取得文件名,调用那个函数?
SpyLogIrp吗?
向前,向前,向前....
wengzuhong
驱动小牛
驱动小牛
  • 注册日期2004-07-16
  • 最后登录2014-10-22
  • 粉丝3
  • 关注1
  • 积分9分
  • 威望262点
  • 贡献值0点
  • 好评度219点
  • 原创分0分
  • 专家分0分
52楼#
发布于:2007-07-23 17:27
lsxredrain 兄,你搞定文件标识了吗?
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
53楼#
发布于:2007-07-23 17:43
我用压缩法加标记,目前还比较稳定
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
54楼#
发布于:2007-07-23 17:50
引用第51楼jl2004于2007-07-23 11:32发表的  :
若想在sfread中取得文件名,调用那个函数?
SpyLogIrp吗?

一般来说是在Create 历程中取到先存起来,需要用时再取出来
wengzuhong
驱动小牛
驱动小牛
  • 注册日期2004-07-16
  • 最后登录2014-10-22
  • 粉丝3
  • 关注1
  • 积分9分
  • 威望262点
  • 贡献值0点
  • 好评度219点
  • 原创分0分
  • 专家分0分
55楼#
发布于:2007-07-24 02:40
压缩法加标记?
老大,什么是压缩法加标记法啊?
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
56楼#
发布于:2007-07-24 08:35
引用第55楼wengzuhong于2007-07-24 02:40发表的  :
压缩法加标记?
老大,什么是压缩法加标记法啊?

用一个压缩比很大的压缩算法把文件某一部分压小一点不就可以放标记了吗?
wanfustudio
驱动牛犊
驱动牛犊
  • 注册日期2006-08-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分720分
  • 威望73点
  • 贡献值0点
  • 好评度72点
  • 原创分0分
  • 专家分0分
57楼#
发布于:2007-07-24 09:05
不错
wengzuhong
驱动小牛
驱动小牛
  • 注册日期2004-07-16
  • 最后登录2014-10-22
  • 粉丝3
  • 关注1
  • 积分9分
  • 威望262点
  • 贡献值0点
  • 好评度219点
  • 原创分0分
  • 专家分0分
58楼#
发布于:2007-07-24 16:29
不错,可是,对于几个字节的文件怎么办?
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
59楼#
发布于:2007-07-24 16:39
几个字节要泄密谁也挡不住的啊
不过我可以控制不允许非法进程从加密文件中获取明文信息
游客

返回顶部