5

我需要从 Windows XP 中以编程方式确定物理磁盘上有多少扇区、磁头和柱面。有谁知道用于确定这一点的 API?Windows 可能会在哪里公开此信息?

4

3 回答 3

6

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

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

于 2008-09-08T22:12:22.787 回答
1

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

于 2008-09-08T21:54:48.057 回答
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( );
        }
    }
}

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

于 2009-11-12T19:01:38.070 回答