0

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

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

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

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

4

1 回答 1

3

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

于 2013-06-19T06:47:52.850 回答