【发布时间】:2012-01-03 05:49:37
【问题描述】:
我想开发一个程序来跟踪写入我的硬盘的数据量。我搜索了互联网,但没有找到必要的 API 调用。 但是它们必须存在,因为我发现了一个商业程序(www.hddled.com),它完全符合我的要求,它甚至显示了在 Windows 启动后启动时读取/写入的数据量。因此,我强烈认为 Windows 会在某处跟踪这些数字?
【问题讨论】:
标签: windows hard-drive
我想开发一个程序来跟踪写入我的硬盘的数据量。我搜索了互联网,但没有找到必要的 API 调用。 但是它们必须存在,因为我发现了一个商业程序(www.hddled.com),它完全符合我的要求,它甚至显示了在 Windows 启动后启动时读取/写入的数据量。因此,我强烈认为 Windows 会在某处跟踪这些数字?
【问题讨论】:
标签: windows hard-drive
一般而言,此类信息可通过 Windows Performance Counters 获得。特别是,磁盘子系统将发布(某处!)每个磁盘设备读取和写入的字节数。准备好进行一些挖掘以准确找到您正在寻找的信息。
【讨论】:
身体上?可能在文件文件描述符表中。
【讨论】:
在互联网上进一步挖掘后,我找到了完美的解决方案。它被称为“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");
}
【讨论】: