如何获取Windows机器的硬盘总大小?

时间:2013-06-19 05:48:29

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

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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