Главная страница
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.022 c
4-1168770920
SysProgram
2007-01-14 13:35
2007.06.24
Определение параметров пользователя


11-1163272588
kolusr
2006-11-11 22:16
2007.06.24
KOLSocket свойство Сount


2-1180622471
Bullfrog
2007-05-31 18:41
2007.06.24
Создание содержания к электронному учебнику


4-1168961302
TProgrammer
2007-01-16 18:28
2007.06.24
Приоритет процессов


8-1160246129
mstitel
2006-10-07 22:35
2007.06.24
запись звукового потока