Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.13;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2008.07.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
6-1190105366
ocean
2007-09-18 12:49
2008.07.13
Как успокоить брандмауэр?


2-1213487433
DJ_UZer
2008-06-15 03:50
2008.07.13
Open/Save Dialog


15-1211871564
Desdechado
2008-05-27 10:59
2008.07.13
Вот интересно


8-1181560776
hahol_64_rus
2007-06-11 15:19
2008.07.13
оболочки


15-1211669739
Kolan
2008-05-25 02:55
2008.07.13
Тут по телеку евровидение выиграли,