gpt4 book ai didi

delphi - 了解 Delphi 中硬盘的速度有多快

转载 作者:行者123 更新时间:2023-12-03 14:43:24 29 4
gpt4 key购买 nike

我正在编写一个诊断程序(类似于珠穆朗玛峰,但更简单),我需要知道硬盘驱动器的速度有多快。我想知道以下内容:

1 - 每秒字节数(读取)
2 - 每秒字节数(写入)
3 - S.M.A.R.T数据

我想我可以使用 WMI 来查询这样的东西,但我不知道如何做。我是否需要购买组件或获取开源组件并不重要。我也知道 Windows Perfmoon 可以做到这一点,但我无法使用它。

最佳答案

Rafael 要获取 S.M.A.R.T 数据,您可以使用 WMI 或 Windows API。

使用 WMI

WMI classes to obtain S.M.A.R.T数据为

  • MSStorageDriver_ATAPISmartData
  • MSStorageDriver_FailurePredictData
  • MSStorageDriver_FailurePredictStatus
  • MSStorageDriver_FailurePredictThresholds
  • MSStorageDriver_ScsiInfoExceptions

所有内容都位于 root\WMI 命名空间中。不幸的是,这些类没有很好的文档记录。

使用 WINAPI

要从 Windows API 访问 S.M.A.R.T 数据需要更多工作,您必须使用 DeviceIoControlCreateFile函数传递相应的结构来保存数据。您可以在 net 上找到许多这样的示例.

计算硬盘的速度

没有 Windows API 可以直接公开此信息。所以你必须自己计算一下。例如,您可以查看此应用程序 DISKSPEED其中包括 C++ 的源代码。他们使用CreateFile函数设置 FILE_FLAG_NO_BUFFERING ($20000000)标志,使对文件句柄的任何写入和读取都直接完成,无需缓冲。

关于delphi - 了解 Delphi 中硬盘的速度有多快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5558525/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com