0

我一直在搜索System.Diagnostics命名空间,寻找一种方法来监视不同进程完成的读写操作,但没有任何运气。

有谁知道用于获取此信息的类或接口?我尝试了 Process 类、Event Trace 类等,但没有找到任何东西。SO上有一些关于这个的帖子,但没有一个有具体的答案,或者这个帖子是5年前的。我在 Win7/Win8 上这样做。

我基本上需要跟踪进程从特定文件中读取的总位数。

我想创建一个 C/C#/C++ 应用程序来执行此操作,或者,如果有办法,直接将信息获取到 PowerShell 脚本中。

4

2 回答 2

1

您可以为此使用 WMI,例如您可以使用的进程 Notepad.exe:

Get-WmiObject -Class "WIN32_Process" -Filter "name='notepad.exe'"

然后看看:

ReadOperationCount
ReadTransferCount 
WriteOperationCount
WriteTransferCount

您还可以使用 C# 访问 WMI。

于 2013-06-14T06:18:04.830 回答
0

您可以尝试从 SysInternals 找到 Filemon 工具。他们当时提供了下载源,但被删除了。可能你仍然可以通过谷歌找到它。

基本上这是通过驱动程序完成的,因此您必须将其实现为设备驱动程序并在文件系统之上使用过滤器驱动程序。它适用于 NT/XP,但基本思想应该仍然有效。

虽然这并不是微不足道的,所以我不知道这是否真的是你想要做的。

我看不到从用户空间执行此操作的方法,因为如果可以轻松完成,这将是一个很大的安全风险。

于 2013-06-14T05:08:33.087 回答