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

Вниз

End LBA в HDD   Найти похожие ветки 

 
kernel ©   (2007-09-06 16:15) [0]

Здравствуйте, уважаемые!
Как можно получить конечный LBA жесткого диска? Пробовал переводить из CHS => LBA: Пользую DeviceIoControl для вычисления кол-ва цилиндров, для получения всего остального заполняю TIdSector. Перевожу по формуле

LBA = ((cylinder * heads_per_cylinder + heads ) * sectors_per_track)+ sector – 1

, где вместо heads_per_cylinder пишу (heads / cylinder), на место sector ставлю последний сектор

но ничего не выходит - вычисление происходит неверно :(

Что делать?


 
Riply ©   (2007-09-06 17:01) [1]

>[0] kernel ©   (06.09.07 16:15)
А кто такой LBA ? Максимальный валидный адрес ?
>но ничего не выходит - вычисление происходит неверно :(
А что получается и почему "неверно" ?


 
tesseract ©   (2007-09-06 17:11) [2]


> А кто такой LBA ? Максимальный валидный адрес ?


Logic block adress для HDD.


> Пробовал переводить из CHS => LBA


Там разная адресация. Цилиндры от CHS к LBA не проходят. Можешь в BIOS посмотреть.


 
umbra ©   (2007-09-06 17:32) [3]


> Как можно получить конечный LBA жесткого диска

количество секторов на винчестере - 1


 
kernel ©   (2007-09-06 17:47) [4]


> Там разная адресация. Цилиндры от CHS к LBA не проходят.
>  Можешь в BIOS посмотреть.

Хм...

Слишком много кода накрутить потребуется :/


> количество секторов на винчестере - 1


получается число ближе к lba, но все_равно не то... :(


 
umbra ©   (2007-09-06 17:48) [5]

а откуда Вы знаете ТО число?


 
kernel ©   (2007-09-06 17:54) [6]

mhdd, hddscan etc. :)


 
Anatoly Podgoretsky ©   (2007-09-06 18:03) [7]

> kernel  (06.09.2007 17:54:06)  [6]

Не надо пытаться работать с секторам, головками - это только для совместимости с ДОС, после определенного размера диска они вообще не имеют смысла


 
kernel ©   (2007-09-06 18:21) [8]


> Не надо пытаться работать с секторам, головками - это только
> для совместимости с ДОС, после определенного размера диска
> они вообще не имеют смысла

А каким образом еще можно получить LBA? :)
Я только про перевод chs->lba слышал...


 
Anatoly Podgoretsky ©   (2007-09-06 20:30) [9]

> kernel  (06.09.2007 18:21:08)  [8]

Я уже не помню API, вроде есть функции получения информации об LBA


 
kernel ©   (2007-10-20 18:10) [10]

Так и не разобрался с определением этого LBA :(
Может быть вариант umbra ©   (06.09.07 17:32) [3] подходит, но у меня неверно определяется кол-во секторов?


 
DrPass ©   (2007-10-20 22:35) [11]


> Так и не разобрался с определением этого LBA

Подозреваю, что единственный способ - спросить у жесткого диска, как это делает BIOS. Т.к. LBA - это всего лишь виртуальная адресация, и ни по каким формулам она не вычисляется.


 
Anatoly Podgoretsky ©   (2007-10-20 22:41) [12]

> DrPass  (20.10.2007 22:35:11)  [11]

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


 
Anatoly Podgoretsky ©   (2007-10-20 22:43) [13]

АПИ практически изначально поддерживал два вида адресации - абсолютную (где сектора считались последовательно с 0 и до конца) и псевдо-аппаратную (HTS).


 
kernel ©   (2007-10-21 08:28) [14]


> АПИ практически изначально поддерживал два вида адресации
> - абсолютную (где сектора считались последовательно с 0
> и до конца) и псевдо-аппаратную (HTS).

Что-то я ничего не понимаю :)
Какой АПИ? Где его взять?


 
Anatoly Podgoretsky ©   (2007-10-21 12:04) [15]

> kernel  (21.10.2007 08:28:14)  [14]

DOS апи, INT 21
По крайней мере начиная со второй версии.


 
kernel ©   (2007-10-21 14:20) [16]

А "стандартного" метода нет? :)



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

Форум: "WinAPI";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
15-1211968530
lazanor
2008-05-28 13:55
2008.07.13
модуль для работы с математическими выражениями


2-1213513674
TForumHelp
2008-06-15 11:07
2008.07.13
Ресурсы в EXE-файле - Иконка


3-1201618645
ANB
2008-01-29 17:57
2008.07.13
Диалог из оракловой хранимки.


2-1213112909
Гошум
2008-06-10 19:48
2008.07.13
SetFileAttributes


2-1213242326
Toropov
2008-06-12 07:45
2008.07.13
Как организовать помощь (Help) в своей программе?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский