Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1197377079
Бэтман
2007-12-11 15:44
2008.01.13
Проблема с кодировкой


15-1197217747
Grain
2007-12-09 19:29
2008.01.13
Выборы грядут


2-1197838272
malyar
2007-12-16 23:51
2008.01.13
Tmemo номер строки который всегда прав


1-1192540614
Андрей
2007-10-16 17:16
2008.01.13
CD-ROM


15-1196840159
Unknown user
2007-12-05 10:35
2008.01.13
Многомониторность





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