我正在尝试获取Windows计算机硬盘的总大小。
我使用的方法之一是使用WMI查询,但似乎WMI没有返回高于2TB的正确大小,我已在WMI测试程序中验证了结果。它不会产生正确的硬盘大小。我已经在1TB机器和2.5 TB机器上验证了结果,我确信WMI返回的错误值超过2TB。
我还尝试检查MS站点中WMI的修补程序,但是他们没有发布与此问题相关的任何修补程序。
任何其他获取硬盘总大小的方法的建议。我需要在VC ++项目中实现该方法。
答案 0 :(得分:3)
查看GetDiskFreeSpaceEx()
,其中lpTotalNumberOfBytes
输出参数。但是,它受每用户磁盘配额的限制。如果需要物理磁盘的原始字节大小,请使用CreateFile()
打开所需磁盘的句柄,然后使用DeviceIoControl()
指定IOCTL_DISK_GET_LENGTH_INFO
控制代码,以获取磁盘的总数字节大小。