在Windows上确定磁盘几何

时间:2008-09-08 21:41:58

标签: windows winapi hard-drive

我需要以编程方式确定Windows XP中物理磁盘上有多少扇区,磁头和柱面。有谁知道确定这个的API? Windows可以在哪里公开这些信息?

3 个答案:

答案 0 :(得分:6)

DeviceIoControl与控制代码IOCTL_DISK_GET_DRIVE_GEOMETRYIOCTL_DISK_GET_DRIVE_GEOMETRY_EX一起使用。

MSDN中有示例代码here

答案 1 :(得分:1)

您可以将控制代码传递给DeviceIoControl以获取物理磁盘几何结构。

答案 2 :(得分:1)

WMI也很擅长这一点,我已经非常成功地使用了它。

using( ManagementClass driveClass = new ManagementClass( "Win32_DiskDrive" ) )
{
    using( ManagementObjectCollection physicalDrives = driveClass.GetInstances( ) )
    {
        foreach( ManagementObject drive in physicalDrives )
        {
            string cylinders = ( string )drive["TotalCylinders"];
            // ... etc ...
            drive.Dispose( );
        }
    }
}

有关您可以使用的其他驱动器属性的列表,请查看this page