Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.043 c
15-1180414575
vajo
2007-05-29 08:56
2007.06.24
Чем можно скопировать с DVD бонус саундтреков


2-1180688001
Fly____
2007-06-01 12:53
2007.06.24
Нет ли у кого функции получения кода цвета из строки?


2-1180336290
Abcdef123
2007-05-28 11:11
2007.06.24
Проблемка с использованием TDBCheckBox


2-1180950891
Name
2007-06-04 13:54
2007.06.24
32 иконки в imageList


2-1180707150
AndrewBB
2007-06-01 18:12
2007.06.24
Битовые строки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский