在Windows上确定磁盘几何

时间:2020-03-05 18:49:40  来源:igfitidea点击:

我需要以编程方式确定Windows XP的物理磁盘上有多少扇区,磁头和磁柱。有人知道用于确定此内容的API吗? Windows可能在何处公开此信息?

解决方案

回答

我们可以将控制代码传递给DeviceIoControl,以获取物理磁盘的几何形状。

回答

将DeviceIoControl与控制代码IOCTL_DISK_GET_DRIVE_GEOMETRY或者IOCTL_DISK_GET_DRIVE_GEOMETRY_EX一起使用。

MSDN中有示例代码可在此处执行。

回答

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( );
        }
    }
}

有关我们可以使用的其他驱动器属性的列表,请查看此页面