首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MiniFilter -如何只检测用户发起的i/o活动?

MiniFilter -如何只检测用户发起的i/o活动?
EN

Stack Overflow用户
提问于 2016-12-24 19:38:37
回答 2查看 472关注 0票数 0

我只需要检测用户启动的i/o活动。当我说用户时,我实际上是指用户(双击打开文件、输入等)。

数据->RequestorMode == 1,只打印用户模式,我需要用户启动的操作。

因此,我需要知道如何只打印由用户自己完成的事务。(打开文件,双击,输入等.(如上文所述)

有什么建议吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-25 20:43:52

双击文件时,请资源管理器代表您采取行动.资源管理器通过检查文件的扩展名,查找与该扩展名关联的应用程序,并使用打开文件的指令启动它。

Windows加载程序负责将应用程序加载到内存中并将其设置为运行。为了做到这一点,它必须至少打开可执行文件,并且通常打开一个或多个DLL。一旦应用程序启动,它还可能在打开用户请求的文件之前打开一些配置文件。

所有这些开放操作都是在相同的上下文中执行的。内核知道是哪个进程启动了打开的文件,但是它无法判断它是由Windows加载程序打开的,还是由应用程序本身打开的,或者无法区分配置文件和用户双击的文件。因此,您将无法从文件系统筛选驱动程序中检测到用户启动的文件打开操作。

可以使用Windows Explorer扩展,尽管这只适用于使用Explorer打开的文件或标准对话框之一,即大多数应用程序,而不是所有应用程序。

票数 0
EN

Stack Overflow用户

发布于 2016-12-24 23:45:03

数据->RequestorMode == 1,只打印用户模式

所以

if (Data->RequestorMode == UserMode) DbgPrint("%x\n", Data->RequestorMode);

只打印UserMode

或者我说更好- if UserMode print UserMode -只打印UserMode ..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41316336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档