我想开发一个程序来跟踪写入硬盘的数据量。我搜索了互联网,但没有找到必要的API调用。 但是它们必须存在,因为我发现了一个商业程序(www.hddled.com),它完全符合我的要求,它甚至显示了在Windows启动后启动时读/写的数据量。因此,我强烈认为Windows会在某处跟踪这些数据?
答案 0 :(得分:4)
通常,可以通过Windows Performance Counters获得此类信息。特别是,磁盘子系统将发布(某处!)读取和写入每个磁盘设备的字节数。准备好挖掘一下,找到你想要的信息。
答案 1 :(得分:0)
物理?可能在文件文件描述符表中。
答案 2 :(得分: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");
}