Главная страница
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.019 c
15-1180506735
DVM
2007-05-30 10:32
2007.06.24
Windows XP Home и 2-х 4--х ядерные процессоры.


6-1164965704
Novic
2006-12-01 12:35
2007.06.24
Запустить самостоятельный процесс на сервере


15-1179978466
AleKo
2007-05-24 07:47
2007.06.24
Лицензия на BDS2006


15-1180365582
PHPdeveloper
2007-05-28 19:19
2007.06.24
есть энтузиасты :) ?


2-1180470696
Slimer
2007-05-30 00:31
2007.06.24
Extended to String