2011-11-21 115 views
2

我想開發一個跟蹤寫入硬盤驅動器的數據量的程序。我搜索了互聯網,但沒有找到必要的API調用。 但是他們必須存在,因爲我發現了一個商業程序(www.hddled.com),它正是我想要達到的目標,它甚至顯示了在Windows啓動後啓動時讀取/寫入的數據量。因此,我強烈地認爲Windows會自己跟蹤這個數字嗎?Windows存儲將數據量讀取寫入硬盤驅動器

回答

4

通常,這種信息可通過Windows Performance Counters獲得。特別是,磁盤子系統將發佈(某處)讀取和寫入每個磁盤設備的字節數。準備好進行一些挖掘以準確找到您要查找的信息。

0

物理上?可能在文件文件描述符表中。

0

經過一些在互聯網上進一步挖掘,我發現了一個完美的解決方案。它被稱爲「Windows管理基礎設施」,下面的C#代碼行提供了一個windows會話期間的讀/寫數據量,儘管值的名字有點誤導:

ManagementObjectSearcher searcher = 
    new ManagementObjectSearcher("SELECT * FROM Win32_PerfRawData_PerfDisk_PhysicalDisk"); 
ManagementObjectCollection col = searcher.Get(); 
m.GetPropertyValue("DiskReadBytesPerSec"); 
m.GetPropertyValue("DiskWriteBytesPerSec"); 
foreach (ManagementObject m in col) 
{ 
    m.GetPropertyValue("DiskReadBytesPerSec"); 
    m.GetPropertyValue("DiskWriteBytesPerSec"); 
}