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

有帮助吗?

解决方案

使用 设备Io控制 带控制代码 IOCTL_DISK_GET_DRIVE_GEOMETRY 或者 IOCTL_DISK_GET_DRIVE_GEOMETRY_EX.

MSDN 中有示例代码可以执行此操作 这里.

其他提示

您可以传递一个控制代码 设备Io控制 获取物理磁盘几何结构。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top