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

Вниз

Внутренняя конфигурация HDD   Найти похожие ветки 

 
Dimaxx ©   (2007-06-18 11:08) [0]

Сабж. Кто про что, а я про прямой доступ.

Мне нужно получить внутреннюю конфигурацию винта, а именно C/H/S. Через DeviceIOControl не катит, ибо возвращается не то. У меня есть старенький винт. Я точно знаю, что его внутренняя конфа 3298/16/63, а DeviceIOControl возвращает 824/64/63, что не есть гут. Порылся в инете - есть тока под Линукс на Сях, либо просто объясняется организация HDD.

Как это сделать? Скорее всего нужно напрямую обращаться к контроллеру...


 
tesseract ©   (2007-06-18 11:29) [1]


> Мне нужно получить внутреннюю конфигурацию винта, а именно
> C/H/S
>Я точно знаю, что его внутренняя конфа


Уверен ? Это адресация как LBA или CHS ? винде в общем то до фонаря, что у тебя в BIOS прописано.


 
Игорь Шевченко ©   (2007-06-18 11:32) [2]

Тебе сюда http://home.earthlink.net/~akonshin/delphi_ru.htm


 
Dimaxx ©   (2007-06-18 13:23) [3]


> Тебе сюда http://home.earthlink.net/~akonshin/delphi_ru.htm

Все это есть, но определяется конфа только у современных винтов. Для подобных моему функция получения этих параметров выдает ошибку "Устройство не подключено", хотя модель, серийник получает нормально. Дело в том, что у меня контроллер IDE реализован не средствами чипсета (JMicron). Поэтому и спрашиваю - мож напрямую к контроллеру обратиться? Но надо сначала получить адрес порта.

Можно канеш в моем случае привести конфу с 64 головок к 16 умножив на 4 кол-во дорожек, но получится 3296, а не 3298. Хотя, думаю, плюс-минус дорожка не особо страшно. Инфа эта не особо нужна, но все-таки желательно ее иметь для дальнейшей работы. Причем определять ее желательно динамически и независимо от конфы самой машины.


> Уверен? Это адресация как LBA или CHS? винде в общем то
> до фонаря, что у тебя в BIOS прописано.

Уверен. Ибо знаю конфу этого винта. Адресация именно CHS (винт 1,7Гб) и это инфа из контроллера винта.


 
Игорь Шевченко ©   (2007-06-18 15:14) [4]

Dimaxx ©   (18.06.07 13:23) [3]

Чудес нет - если что-то определяется, значит оно определяется в массе случаев через DeviceIOControl. Можно и к контроллеру обратиться, но это драйвер нужен, чтобы по портам лазить и со стандартным драйвером контроллера не пересечься.


 
Dimaxx ©   (2007-06-18 17:49) [5]

Так я и говорю - определяется через DeviceIOControl, но не так. В итоге объем виден правильно, но конфа неверная.


 
AndreyRus   (2007-06-19 13:06) [6]

CHS для hdd - атавизм.


 
Dimaxx ©   (2007-06-19 14:30) [7]

Я не спрашиваю что это, я спрашиваю как получить. Мне это нужно для работы.


 
AndreyRus   (2007-06-19 14:37) [8]


> Я не спрашиваю что это, я спрашиваю как получить.

Никак.


 
Anatoly Podgoretsky ©   (2007-06-19 15:26) [9]

> Dimaxx  (19.06.2007 14:30:07)  [7]

В БИОСе, но это мало что даст, эта информация для ДОС программ в основном.


 
Dimaxx ©   (2007-06-19 17:40) [10]


> Никак.

Свободен! Не знаешь - не пиши... :)

Через порты можно. Адреса портов стандартные, либо впишу ручками.

Есть команда $EC - идентификация накопителя. Она заставляет накопитель выдать инфу о себе - там все есть. Нашел драйвер (причем с сырцами) - с помощью недокументированных команд он разблокирует порты под NT и с ними можно работать свободно в Дельфе. Если кто в Сях волокет - мож разберетесь как можно эти недокументированные команды заюзать прямо в приложении.


 
AndreyRus   (2007-06-19 18:09) [11]


> Свободен! Не знаешь - не пиши... :)

Ура! Я свободен!
CHS был отменен в ATA/ATAPI-6.
См. - http://www.smarthdd.com/rus/ata_history.htm


 
Anatoly Podgoretsky ©   (2007-06-19 19:24) [12]

> AndreyRus  (19.06.2007 18:09:11)  [11]

А что еще оставалось делать, с большими винчестерами, работать с только с первыми 2 гб? CHS потихоньку постоянно расширяли, пока не полностью не уперлись в выделеные регистры.

Изначально было 1024 цилиндра, 16 головок и 63 сектора.


 
Dimaxx ©   (2007-06-19 20:41) [13]


> CHS был отменен в ATA/ATAPI-6.

Да чего ты привязался к отмене? Ты первый мой пост читал? Я тебя про 500Гб винт что ли спрашивал? У меня старый винт 1,7Гб, вот с него-то мне и надо читать данные. Я его взял для экспериментов. А получение конфы так, для расширения кругозора начал копать.


 
AndreyRus   (2007-06-20 03:12) [14]

Даже у него с очень большой долей вероятности количество дорожек, секторов и головок(CHS) не соответствует физическому. Тебе известно, что такое транслятор? Так вот он есть даже в твоем старом винте. Забудь о программном определении физической конфигурации CHS жесткого диска. Это невозможно.


 
Dimaxx ©   (2007-06-20 10:16) [15]

Ну считай дальше что невозможно. Невозможно сделать, если сидеть и глядя в потолок рассуждать об этом. Я уже все сделал и получил ID sector... Да, у современных винтов одна и та же конфа 16383/16/63 (и я это знал), а мне пока нужны старые винты - у них как раз то что надо.

Тема закрыта...



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

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

Наверх




Память: 0.5 MB
Время: 0.015 c
1-1192469313
Megaman KN
2007-10-15 21:28
2008.01.13
Сжатие методом Хаффмана


15-1196913688
Slider007
2007-12-06 07:01
2008.01.13
С днем рождения ! 6 декабря 2007 четверг


2-1197625497
Max
2007-12-14 12:44
2008.01.13
TreeView


15-1197193611
Kerk
2007-12-09 12:46
2008.01.13
Посмотри вокруг (Розыч, блин, не трожь, выходной же :-))


2-1197462986
altatr
2007-12-12 15:36
2008.01.13
Отключить проверку заглавных букв