IOCTL_DISK_GET_DRIVE_GEOMETRY example code of Microsoft为硬盘提供了预期的results。
SD卡是驱动器F:并且没有文件系统。该卡之前是由8位微控制器编写的,文件系统是不可能的。在Windows资源管理器中,SD卡大小正确显示为1886 MB。但是当我运行程序时,我得到0.01 GB。
示例代码是否正确?我略微更改了原始代码,更改后的代码为here。
这可能是Mingw的一个问题吗?我怀疑,它适用于硬盘。它是WinXP SP2上的mingw32 gcc 4.6.1。生成的程序在Win7上运行。我正在使用Linux,而且我对本机Win7的访问权限非常有限。
如何在没有文件系统的情况下弄清楚SD卡的大小?
答案 0 :(得分:2)
正如Hans Passant所指出的,IOCTL_DISK_GET_LENGTH_INFO应传递给DeviceIoControl
。
如果遵循CreateFile
remarks concerning physical disks and volumes,一切正常。生成的代码为here。