欢迎来到可可资源网 免费分享实用的学习资源及技术教程  技术爱好者的栖息之地
✌可可资源网✌
当前位置:首页 > 易语言源码 > 正文

【R3下最底层?】监听文件夹的文件变动

编辑:可可日期:2021-09-04 10:45:04浏览:1652分类:易语言源码

前言:

  • 以前写过一个文件监视:【新】用SHChangeNotifyRegister实现文件监控 - 注释清晰,易拓展封装
  • 今天写的文件监视则是调用的一个较为底层的函数:NtNotifyChangeDirectoryFile

正文:

  • NtNotifyChangeDirectoryFile是非文档化,非公开函数,使用起来非常的麻烦,因为涉及NtNotifyChangeDirectoryFile,NtOpenFile,NtWaitForSingleObject等毫无资料的函数的调用,所以本程序写起来还是花了不少时间的。
  • 我的调用过程大致如下:使用NtOpenFile打开目录,NtNotifyChangeDirectoryFile监听目录变化,NtWaitForSingleObject进行等待,最后使用IOCP通知UI线程变化:
  • 由于采用完全通知异步的方式,在NtNotifyChangeDirectoryFile结束监听时即可开启下一次监听,漏数据的可能性下降:
  • 测试效果:

PS:

  • 文件名开头的“\??\”代表是内核路径,请在所以测试文件夹开头都要加上“\??\”标志!程序默认监听路径是运行目录下的“IMG”,请在测试前换成其他路径!
  • 文件名开头的“\??\”代表是内核路径,请在所以测试文件夹开头都要加上“\??\”标志!程序默认监听路径是运行目录下的“IMG”,请在测试前换成其他路径!
  • 文件名开头的“\??\”代表是内核路径,请在所以测试文件夹开头都要加上“\??\”标志!程序默认监听路径是运行目录下的“IMG”,请在测试前换成其他路径!

引用模块

引用支持库

源码文件名支持库文件名支持库标识
NtNotifyChangeDirectoryFile.e系统核心支持库 5.7d09f2340818511d396f6aaf844c7e325
转载:感谢您对可可资源网网站平台的认可,以及对我们原创作品以及文章资源的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源可可资源网”。https://www.100keke.cn/eyuyan/13215.html