Windows資源監視器顯示(除其他之外)磁盤上的哪些文件當前由哪些進程訪問。它可以實時進行。 如何?Windows資源監視器使用哪個API?
我知道它可能使用ETW,我可以使用xperf等工具生成跟蹤。但是如何獲得實時信息而無需啓動,停止和解析跟蹤文件?
我需要以編程方式訪問數據,即從C#或C++。
Windows資源監視器顯示(除其他之外)磁盤上的哪些文件當前由哪些進程訪問。它可以實時進行。 如何?Windows資源監視器使用哪個API?
我知道它可能使用ETW,我可以使用xperf等工具生成跟蹤。但是如何獲得實時信息而無需啓動,停止和解析跟蹤文件?
我需要以編程方式訪問數據,即從C#或C++。
w OpenTrace/ProcessTrace/StopTrace只要您知道提供商GUID,就可以實時獲取數據。他們可以在Win2000上運行,但是你需要在你的回調函數中解析原始數據。爲了將原始數據轉換爲可讀的文本,我們需要TMF/MOF。不知道他們是否公開。
對於Vista/Win7,有一套新的TDH(跟蹤數據助手)API(例如:TdhFormatProperty)。 向下滾動一下上面的鏈接,你就可以看到它們。 TDH的好處是他們可以爲你解析數據(儘管如此,仍然需要提供TDH TMF/MOF)。
我試圖使用Open/Process/StopTrace API(因爲我需要支持XP)將自己的.etl編寫爲可讀的.txt程序。我發現這很困難。由於它是純文本,TMF文件不難解釋。最難的是破譯50多個不同的非文件格式 - 規範的內部結構。所以我最終放棄了,堅持微軟WDK提供的功能強大的tracefmt.exe。