minifilter中如何捕获文件的最后修改时间

minifilter中如何捕获文件的最后修改时间,第1张

使用find命令组合可完成此功能,步骤如下:

1、创建一个时间标签临时文件(如,创建一个1900年1月1日0时0分的文件)

1

touch -t 190001010000 rmfile.tmp

2、用find命令组合进迟亮行删除

find . -type f ! -newer rmfile.tmp -exec rm -f {} \

-type f 只处理普通文件

-newer 修改时间比rmfile.tmp新的,族锋即在rmfile.tmp之后的文件

! -newer 叹号 取反,即得到rmfile.tmp之前的文件

-exec 执行命令

rm -f 强制删除,不需要提示

3、删除标签临时文件

1

rm -f rmfile.tmp

将以上命令写到一个文件中,做成一个脚本程序,使用起来会更方便

#!/码穗宽usr/bin/bash

read -p "input time [YYYYmmddHHMM]:" del_time

TMP_FILE=rmfile.tmp.$del_time

touch -t $del_time $TMP_FILE

if [ $? -ne 0 ]

then

echo "create temp file: $TMP_FILE error"

exit

fi

find . -type f ! -newer $TMP_FILE -exec rm -f {} \

rm -f $TMP_FILE

为了让这个驱动被系统加载,必须创建一个inf文件。由于是使用现成的例子,因此这一步也可以省下来。直接右键点击例子中的inf文件,在d出的菜单中选择“安装”即可。

这里要注意的是,inf中的StartType参棚敏数,它可以控制驱动被加载的方式:

SERVICE_AUTO_START (2) 安全模式下不会自动加载 SERVICE_BOOT_START (0)在系统安全模式下启动时 驱动也会自动加载

SERVICE_DEMAND_START(3) 则驱动不会自动加载

因为是测试,我使用SERVICE_DEMAND_START,即由手动加载驱动。例子是miniFilter驱动,因此可以在命令提示行中用“fltmc load 驱动名称”蔽察来加载,相应的卸载是“fltmc unload”。如果是其它驱动,则用"net start 驱动名称"来加载,相应的卸载是"net stop 驱动名称"。注意驱动名称不是文件名,而是inf中[Settings]的ServiceName值。驱动要发布时,也可以通过CreateService &StartService API来动态安装。

Inf文件的写法,可以参考例子,或者拿现成的改一改。下面链并枝的是摘自驱动开发网的

XiangXiangRen整理的Inf文件,改起来比较方便,谢谢XiangXiangRen


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12247102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存