Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как обратиться к PCI-девайсу, если его не видит Win98?  (Прочитано 9716 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Monsta
Гость
« : 28-10-2004 10:26 » 

Предыстория.
На работе с грехом пополам собрали PCI девайс. Задумывался он как Plug'n'play, и я заранее накатал для него драйвер. На деле же получилось так, что 98-я винда просто не видит девайс - никаких "неизвестных устройств" в списке не прибавилось. Драйвер установился, но толку от него мало - он ищет девайс по вендору и ID, не находит и отказывается работать.

Что нужно.
Как-нибудь обратиться к девайсу на низком уровне. Я примерно представляю, как это делать, но понятия не имею, как нумеруются PCI-слоты и, соответственно, какой будет диапазон адресов.
Кто-нибудь с такими вещами сталкивался?
Записан
Серж
Гость
« Ответ #1 : 28-10-2004 11:40 » 

Monsta, я не работал c 98-й, а в NT DDK есть пример драйвера PCIEnum,
наверное, аналогичный пример есть и в DDK-98.
Кроме того, посмотри ссылку http://www.entechtaiwan.com/tools_rus.htm , там есть  программа , позволяющая обратиться к аппаратуре из Win32-приложения. Она пользуется неким своим универсальным драйвером.
Записан
Monsta
Гость
« Ответ #2 : 02-11-2004 09:41 » 

Тьфу блин, и за эту шнягу они хотят деньги... Отлично
Я поступил проще - выкачал с wasm.ru асмовый исходник, который пробегает по всем PCI-девайсам в системе и выводит инфу о них. Компилировал досовым Тасмом, в 98-й винде работает на ура. Вопрос об адресации тут же решился - понадобились только два порта и примитивная команда "out dx, eax" Улыбаюсь

Теперь, правда, совершенно непонятно вот что. Есть конкретный слот PCI. Как узнать номер шины и номер девайса? Мы делали "в лоб": раз на слоте плату не видно, поставили туда сетевуху, а при загрузке компа списали номера шины и девайса из таблицы. Отлично
Записан
Серж
Гость
« Ответ #3 : 02-11-2004 10:31 » 

Monsta, надо перебирать все шины, слоты  и устройства, пока не найдешь нужные VendorId и DeviceId. Не знаю, какая функция это делает в 98, а в NT для этого есть ф-ия HalGetBusData.
Записан
Серж
Гость
« Ответ #4 : 02-11-2004 11:02 » 

http://www.hollgi.de/PCI/freeware.html - ссылки на бесплатные программы по сканированию PCI-шины
Записан
Monsta
Гость
« Ответ #5 : 02-11-2004 12:29 » 

Да с перебором всё и так понятно. Я же говорю - прога, написанная на чистом асме, делает именно это и нормально работает в 98-й. NT мы пока не трогаем. Я вот про что спрашивал:
Цитата
Есть конкретный слот PCI. Как узнать номер шины и номер девайса? Мы делали "в лоб": раз на слоте плату не видно, поставили туда сетевуху, а при загрузке компа списали номера шины и девайса из таблицы. Отлично
Записан
Серж
Гость
« Ответ #6 : 02-11-2004 13:32 » 

Monsta, если перебор по всем трем параметрам решает твою задачу, тогда я не понял вопроса.
Записан
Monsta
Гость
« Ответ #7 : 02-11-2004 23:09 » 

Задача решена. Мне теперь, фактически, просто интересно, как нумеруются слоты на плате...
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #8 : 03-11-2004 10:26 » 

Цитата

Задача решена. Мне теперь, фактически, просто интересно, как нумеруются слоты на плате...

Зависит от модели платы и обычно эта информация есть в описании на плату.
Записан

Megabyte be with you!
Monsta
Гость
« Ответ #9 : 03-11-2004 13:29 » 

А примерно? При переставлении плат выяснили, что номера девайсов на всех шинах (с номерами 1,2,3) - не меньше 4.
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #10 : 03-11-2004 14:17 » 

Цитата

При переставлении плат выяснили, что номера девайсов на всех шинах (с номерами 1,2,3) - не меньше 4.

Э-э-э, номера раздаются на момент инициализации девайсов и сильно зависять от биоса и ОС и т.п. Не думаю, что правильно будет делать привязку к этим номерам.
Записан

Megabyte be with you!
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines