文件监视器-c#或c++;

文件监视器-c#或c++;,c#,monitoring,etw,C#,Monitoring,Etw,我正在开发一个文件监视器来监视任何exe的文件访问。我监控exe的任何打开/关闭文件,读取/写入并收集统计数据 我是ETW的新手(根据我的研究,似乎没有其他方法可以做到这一点。) 虽然我已经能够获得一些C++代码,但是我的客户更喜欢C语言解决方案。C语言中有足够的支持来监视文件IO?< /P> msdn中的示例特定于c++/c。我读过vance Morrison的博客,但目前我还无法理解,它们似乎不适合“nt内核日志记录会话/监视文件io”场景 谁能给我一个简单的例子或者给我一个有用的链接?欢迎

我正在开发一个文件监视器来监视任何exe的文件访问。我监控exe的任何打开/关闭文件,读取/写入并收集统计数据

我是ETW的新手(根据我的研究,似乎没有其他方法可以做到这一点。)

虽然我已经能够获得一些C++代码,但是我的客户更喜欢C语言解决方案。C语言中有足够的支持来监视文件IO?< /P> msdn中的示例特定于c++/c。我读过vance Morrison的博客,但目前我还无法理解,它们似乎不适合“nt内核日志记录会话/监视文件io”场景


谁能给我一个简单的例子或者给我一个有用的链接?欢迎对此进行任何输入。

查看该类。

在windows中,基本winapi最终授予任何文件访问权限。请参见CreateFile和Family。这些函数可由钩子钩住(尽管它是用于检测目的)。还有大量其他库用于此类目的,例如easyhook。

我很清楚这个类。但它监视文件的更改…而不是该文件的外部访问。这就是我要寻找的。任何C#解决方案都必须大量使用p/Invoke来访问需要调用的Windows API函数。也许你可以用C/C++编写一个DLL来完成你需要的工作,并从中导出一些提供接口的简单函数,然后用C#编写一个使用P/Invoke调用这些函数的包装类。这就是我目前正在做的。我只是好奇地想看看C#4.0 4.5提供的支持,如果是这样的话,代码将更简单,不需要pinvoke。我正在监视一个exe。它们在这种情况下有用吗?例如,拾取文件io事件?…感谢您提供的信息。意味着更多的研究:)简单地说,这样的钩子函数意味着在实际调用操作系统提供的函数之前,它们将首先被分派到您自己的函数中——如果您愿意,您甚至可以调整参数并改变行为。简言之,是的-它们可以用于您的场景中。哦,太好了!。。。你能给我提供这个库的其他有用的示例/链接吗?无论如何,我会搜索,我读了一些文章。根据我的理解,我必须编写一个dll,命名要挂接的函数和用户定义的挂接过程。然后我将该dll注入到所需的进程中。这样做吗?正确,这是它的基本轮廓。虽然我从未在第三方可执行文件上执行过,但您需要的是CreateRemoteThread上的代码,特别是CreateRemoteThread下的代码。