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