Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

SizeOf("Device") - един в трех лицах :)   Найти похожие ветки 

 
Riply ©   (2007-05-31 18:08) [0]

Здравствуйте !
Допустим, мы берем CD-диск и тремя способами пробуем получить его "размер".
DeviceIoControl(..., IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, ...., PDISK_GEOMETRY_EX,.....
 begin
  Size_Ex := PDISK_GEOMETRY_EX.DiskSize.QuadPart; // первый вариант
  with PDISK_GEOMETRY_EX.Geometry do
    Size_Calc := Cylinders.QuadPart * TracksPerCylinder * SectorsPerTrack * BytesPerSector; // второй вариант
 end;
 ......                    или "G:"
 GetDiskFreeSpaceEx(PChar("\\.\CdRom0\), ..., Size_Total, ...) // третий вариант

Сравниваем результаты:
Size_Calc  = 725 614 592
Size_Total = 728 975 360
Size_Ex    = 729 282 560
Объясните мне, пожалуйста, кто и зачем ворует байты, и что туда записывает ?
Какой из них что означает ?
Ну почему отличается результат, полученный GetDiskFreeSpaceEx, еще, худо-бедно, предположить можно,
но почему различаются Size_Ex и Size_Calc, мне совсем непонятно :(
P.S.
CD-диск взят как пример.
Для дискеты:
Size_Calc  = 1 474 560
Size_Total = 1 457 664
Size_Ex    = получить не удается из-за EX-кода.
Для флешки:
Size_Calc  = 123 379 200
Size_Total = 124 559 360
Size_Ex    = 125 829 120


 
Desdechado ©   (2007-05-31 18:16) [1]

Не все области дисков предназначены для записи пользовательских данных. В некоторых хранятся данные для восстановления, всякие контрольные суммы и т.п.


 
Riply ©   (2007-05-31 18:20) [2]

> [1] Desdechado ©   (31.05.07 18:16)
>Не все области дисков предназначены для записи пользовательских данных. В некоторых хранятся данные для >восстановления, всякие контрольные суммы и т.п.
Это понятно. Но ни один, из полученных размеров, к пользовательским данным, imho,
никакого отношения  не имеет. А, если я ошибаюсь, то какой ?


 
Desdechado ©   (2007-05-31 18:40) [3]

> Для дискеты:
> Size_Total = 1 457 664
это пользовательские

ЗЫ интересно, какие на флэшке могут быть цилиндры?



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
15-1180094735
Anatoly Podgoretsky
2007-05-25 16:05
2007.06.24
Дмитрий О.


4-1168258490
BOB16
2007-01-08 15:14
2007.06.24
как получить информацию о HFONT-шрифте и поменять его


15-1179906322
Сатир
2007-05-23 11:45
2007.06.24
Переход с Indy 9.0 на Indy 10.0 (вопрос для знатоков Indy)


15-1180327638
Slider007
2007-05-28 08:47
2007.06.24
Установленные пиратские Вин 2000/ХР и лицензия


3-1175490505
Карелин Артем
2007-04-02 09:08
2007.06.24
Компоненты прямого доступа для DBF подскажите.