Главная страница
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.014 c
2-1180547867
aidyn
2007-05-30 21:57
2007.06.24
Как загрузить текстовый файл в Delphi?


15-1180280239
No_Dead
2007-05-27 19:37
2007.06.24
То же литература понадобилась, нужен совет


8-1160757993
Minesweeper
2006-10-13 20:46
2007.06.24
Flash- обмен информацией с формой


2-1180972683
Bora_ru
2007-06-04 19:58
2007.06.24
Список функций и процедур в DLL


3-1175235625
Ulugbek
2007-03-30 10:20
2007.06.24
Как проверить таблицу на запись