【问题标题】:How to get the total size of hard disk of Windows machine?如何获取Windows机器的硬盘总大小?
【发布时间】:2013-06-15 13:03:36
【问题描述】:

我正在尝试获取 Windows 机器的硬盘总大小。

我使用的一种方法是使用 WMI 查询,但 WMI 似乎没有返回超过 2TB 的正确大小,我已经在 WMI Tester 中验证了结果。它不会产生正确的硬盘大小。我已经在 1TB 机器和 2.5TB 机器上验证了结果,并且我确信 WMI 返回超过 2TB 的错误值。

我也尝试在 MS 站点中检查 WMI 的修补程序,但他们尚未发布任何与此问题相关的修补程序。

关于获取硬盘总大小的任何其他方法的任何建议。我需要在 VC++ 项目中实现该方法。

【问题讨论】:

    标签: windows winapi visual-c++ operating-system wmi


    【解决方案1】:

    查看GetDiskFreeSpaceEx(),它有一个lpTotalNumberOfBytes 输出参数。但是,它受每个用户磁盘配额的限制。如果您需要物理磁盘的原始字节大小,请使用CreateFile() 打开所需磁盘的句柄,然后使用DeviceIoControl(),指定IOCTL_DISK_GET_LENGTH_INFO 控制代码,获取磁盘的总字节大小。

    【讨论】:

      猜你喜欢
      • 2013-03-01
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 2013-09-28
      • 1970-01-01
      相关资源
      最近更新 更多