Windows 资源监视器显示(除其他外)当前哪些进程正在访问磁盘上的哪些文件。它是实时进行的。How?
我知道它可能使用 ETW,并且我可以使用 xperf 等工具生成跟踪。但是如何在无需启动、停止和解析跟踪文件的情况下获取实时信息呢?
我需要以编程方式访问数据,即从 C# 或 C++ 访问数据。
w开放跟踪/进程追踪/停止追踪只要知道提供商GUID就可以实时获取数据。它们可以在Win2000上运行,但您需要在回调函数中解析原始数据。要将原始数据转换为人类可读的文本,我们需要 TMF/MOF。但不确定它们是否是公开的。
对于 Vista/Win7,有一组新的 TDH(跟踪数据助手)API(例如:TdhFormatProperty)。
向下滚动一点上面的链接,您就可以看到它们。 TDH 的好处是他们可以为您解析数据(不过仍然需要提供 TDH 的 TMF/MOF)。
我尝试使用 Open/Process/StopTrace API 将自己的 .etl 写入可读的 .txt 程序(因为我需要支持 XP)。我发现这相当困难。 TMF 文件并不难解释,因为它是纯文本。困难的是破译 50 多种不同的未记录的类似格式规范的内部结构。所以我最终放弃了,坚持强者tracefmt.exeMicrosoft WDK 中提供。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)