문제

Windows XP의 실제 디스크에 몇 개의 섹터, 헤드 및 실린더가 있는지 프로그래밍 방식으로 확인해야 합니다.이를 결정하는 API를 아는 사람이 있나요?Windows에서는 이 정보를 어디에 공개할 수 있나요?

도움이 되었습니까?

해결책

사용 DeviceIoControl 제어 코드 포함 IOCTL_DISK_GET_DRIVE_GEOMETRY 또는 IOCTL_DISK_GET_DRIVE_GEOMETRY_EX.

이를 수행하기 위한 샘플 코드가 MSDN에 있습니다. 여기.

다른 팁

전달할 수 있는 제어 코드가 있습니다. DeviceIoControl 물리적 디스크 구조를 얻으려면.

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