creakmud
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望11点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
阅读:3636回复:30

100元人民币求一个小程序代码.兄弟们,希望有人肯花一个小时帮个忙.

楼主#
更多 发布于:2007-12-03 21:37
通过ifs实现文件监控。具体要求如下:

1、使用sfilter或者filespy代码框架。
2、监视监控列表中的文件,当被监控的文件被删除时,ifs驱动把该文件拷贝到指定的目录,然后驱动放行该操作。
3、提供一个静态库,包含函数:
    Add(CString sFileName,CString dFilePath),通过该函数,把要监控的文件加到被监控文件列表中。
    Remove(CString sFileName),通过该函数,把之前加入监控列表的文件记录删除(使得ifs驱动不再监控该文件)
    Clear(),通过该函数,清除监控列表    
    Load(),装载驱动;UnLoad(),卸载驱动。

备注:
1、文件拷贝使用ZwCreateFile/ZwReadFile/ZwWriteFile完成。
2、Add(CString sFileName,CString dFilePath),sFileName支持目录/通配符号(如:c:\temp\*.temp)
3、确保程序稳定高效。

最新喜欢:

youbestyoubes...
creakmud
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望11点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-12-10 09:58
the Kernel File Copy driver

有时间再仔细看看。
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
板凳#
发布于:2007-12-09 20:57
引用第28楼ProPlayboy于2007-12-09 04:10发表的  :
KFC...我前些天,才去那里买了一份汉堡。。味道还可以。。。


我记得好像叫啥啥RoXXX Irp的一个代码~~忘记了~~库叫啥kfc~~
没有战争就没有进步 X3工作组 为您提供最好的军火
ProPlayboy
驱动大牛
驱动大牛
  • 注册日期2005-07-07
  • 最后登录2022-02-15
  • 粉丝0
  • 关注0
  • 积分1016分
  • 威望811点
  • 贡献值0点
  • 好评度719点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-12-09 04:10
KFC...我前些天,才去那里买了一份汉堡。。味道还可以。。。
人不靓仔心灵美,版头不正红花仔!
creakmud
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望11点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-12-09 03:48
谢谢指点
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
5楼#
发布于:2007-12-09 03:32
正规应该是第三种方式,在驱动里完成copyfile,具体代码参考kfc~~kfc~~
(KFC是代码的压缩代号,你可以找找看哦~)
没有战争就没有进步 X3工作组 为您提供最好的军火
creakmud
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望11点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-12-09 03:14
目前使用的是第一种方式。正在向第二种方式进军。
这几天上火了,发现自己最近脾气比较差~~有冒犯大家的地方请多多包涵。
以后遇到问题,还希望大家多多指点。。。
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
7楼#
发布于:2007-12-09 02:16
既然不是专门搞驱动的啊~~
不是BS,而是关注稳定这两个字~~
今天晚上跟某人去稳定某问题,差点吐血~~

根据你的一句话:
"拷贝操作通过应用程序完成..."

大体猜测一下:(其实也是价值大约100rmb的思路)
第一种思路::(属于邪派的手法)
发现是要xx的文件
再发现负责删除程序不是自己的程序直接取消当前的删除,然后Set下Event 让应用层copy之后,再应用层删除~
第二种思路::(在文件不大时很稳定的做法)
发现是要xx的文件,直接iofcalldriver查询并读取整个文件。写入临时的mapping,下发删除~~
set下event让ring3取mapping数据,写入yyy~~~
没有战争就没有进步 X3工作组 为您提供最好的军火
creakmud
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望11点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-12-09 01:33
引用第22楼killvxk于2007-12-07 19:55发表的  :
     

自己觉得解决了?在1000W用户安装后稳定了么?

我现在也有同样的问题,给你100元,帮我解决1000W用户安装无一个投诉的稳定,就是你说的这些功能~~


做斑竹还真的可以随便BS人哦。

说实话,到目前为止,我也只做过2个可以运行的驱动程序,filedisk和vprinter。还是在别人的代码上修改的。技术自然无法跟大家相比了。我的工作跟驱动开发粘不上边,只是这次由于工作的原因需要了解这方面的技术问题,所以想找个代码参考一下。
这个问题,我目前的解决方法是修改filespy代码,对文件的删除操作做了限制,拷贝操作通过应用程序完成,仅此而已。接下来还有很多东西要边学习边开发了。


谢谢20楼朋友的关注,如果你愿意帮忙,我非常感谢。
个人觉得,只需要关注IRP_MJ_SET_INFORMATION,FILE_DISPOSITION_INFORMATION 的 DeleteFile==TRUE
然后判断当前文件是否是被监控的文件,如果是则拷贝到指定目录里。

至于安装和加载问题,可以直接参考filespy的方法。只需要保证在win2000和win2k3正常运行。


其他朋友有什么好的方法,也希望提出来。

PS:
对于高手们来说这个问题的确很无聊,可以暂时回避一下:)
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
9楼#
发布于:2007-12-07 19:55
     

自己觉得解决了?在1000W用户安装后稳定了么?

我现在也有同样的问题,给你100元,帮我解决1000W用户安装无一个投诉的稳定,就是你说的这些功能~~
没有战争就没有进步 X3工作组 为您提供最好的军火
q065700
驱动牛犊
驱动牛犊
  • 注册日期2007-11-09
  • 最后登录2008-05-08
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-12-07 16:24
真的被前面的哥们说中了。这贴真的火了
isware
驱动牛犊
驱动牛犊
  • 注册日期2006-01-24
  • 最后登录2013-04-15
  • 粉丝0
  • 关注0
  • 积分385分
  • 威望79点
  • 贡献值0点
  • 好评度38点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-12-07 15:56
我可以试试吗?
这个功能确实比较简单啊,不会涉及很多DISPATCH,不需要管CATCH,但有一个问题,过滤驱动在2000下动态加载还不清楚怎么弄.
creakmud
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望11点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-12-06 16:25
引用第18楼j1j1j1于2007-12-06 14:47发表的  :



技术这东西,做过了也就那样,话是不错,可是你以为每个人都象你这么有闲功夫,为了100块去做驱动啊?100块,看完你的贴都不只收你100块,你以为中国人个个都是IT民工啊,搞笑



按照你这个逻辑理解,如果你遇到问题,而别人又花了时间帮助你,你然后说一声谢谢,再然后你请他和茶。这个时候,你是不是把帮助你的人当作了民工?

楼上楼下的各位,请看一下标题,是100元人民币求一个程序,既然是求,就说明这100元不是酬劳,不是要花100元买。同时标题也说明了,是希望有人肯花时间去帮忙。大家为什么把这100元作为酬劳,作为交易的筹码呢?
大家没有时间帮忙,或者不愿意帮忙的话,大可一笑而过。

继续关注这个话题...
j1j1j1
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2009-11-28
  • 粉丝0
  • 关注0
  • 积分193分
  • 威望49点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-12-06 14:47
引用第13楼creakmud于2007-12-06 01:10发表的  :
谢谢大家关注。
自己解决了,先凑合着用吧。谢谢楚狂人的教程。
不知道是大家把钱看得太重了,还是我描述得太复杂了。技术这东西,做过了也就那样。



技术这东西,做过了也就那样,话是不错,可是你以为每个人都象你这么有闲功夫,为了100块去做驱动啊?100块,看完你的贴都不只收你100块,你以为中国人个个都是IT民工啊,搞笑
creakmud
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望11点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2007-12-06 12:31
本来想上来这里向大家求助的。100在深圳的确算不了什么,一杯咖啡也90多。
只是想到既然要别人帮忙,请他喝杯咖啡想来应该也不是什么坏事。但是看来大家都想到了等价交换。如果把这个需求作为项目,1W元也只能算是个起步价。
14楼的朋友分析的很正确。
to 16楼,你是否把100元当钱呢?
mmloveread
驱动牛犊
驱动牛犊
  • 注册日期2005-12-09
  • 最后登录2011-06-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望12点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2007-12-06 09:38
lz把100块太当钱了.
q065700
驱动牛犊
驱动牛犊
  • 注册日期2007-11-09
  • 最后登录2008-05-08
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-12-06 08:30
长见识,看来我是蛮值钱的嘛。但是现在我做不了这个功能,要做也要好久才可以
michaelgz
论坛版主
论坛版主
  • 注册日期2005-01-26
  • 最后登录2012-10-22
  • 粉丝1
  • 关注1
  • 积分150分
  • 威望1524点
  • 贡献值1点
  • 好评度213点
  • 原创分0分
  • 专家分2分
17楼#
发布于:2007-12-06 05:09
Let me do some calculation here based on a very simple formula:

        MonthlySalary / WorkingHoursPerMonth * HoursSpentOnThisFunction

Let's say your salary is 5000 per month, there are 22 working days in a month and everyday you work 8 hours: 5000 / 22 / 8 = 28.4 Yuan/Hour,   That's your hourly rate. So your 100Yuan means you estimate the work can be finished in less than 5 hours.

If your salary is 1K, you earn 1K/22/8 = 5.68 Yuan/Hour and you can have 17.6 hours (more than 2 days) to solve it.

Since you finished the work by yourself, you should be able to know whether 100Yuan is enough or not.

To be honest, from your requirements, I don't think an experienced kernel developer can finish them in one or two days and a kernel driver strictly follow your requirements may yield BSOD.

"技术这东西,做过了也就那样。" - You post this sentence in a wrong forum.
creakmud
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望11点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-12-06 01:10
谢谢大家关注。
自己解决了,先凑合着用吧。谢谢楚狂人的教程。
不知道是大家把钱看得太重了,还是我描述得太复杂了。技术这东西,做过了也就那样。
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
19楼#
发布于:2007-12-05 18:49
100元,很好,很强大~

这样吧,我给楼主10W,搞个稳定这个小功能吧~~^_^
没有战争就没有进步 X3工作组 为您提供最好的军火
上一页
游客

返回顶部