Форум: "WinAPI";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
ВнизВнутренняя конфигурация 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c