我需要以编程方式确定Windows XP中物理磁盘上有多少扇区,磁头和柱面。有谁知道确定这个的API? Windows可以在哪里公开这些信息?
答案 0 :(得分:6)
将DeviceIoControl与控制代码IOCTL_DISK_GET_DRIVE_GEOMETRY或IOCTL_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