Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как Windows определяет режим LPT порта ?
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Леха
В BIOS компа можно установить режим работы параллельного порта - SPP, EPP, ECP.
В момент загрузки винда чётко определяет какой параллельный порт присутствует в
компе (ECP или не ECP). Подскажите, пожалуйста, как это делается (опрашиваются
какие-нибудь регистры контроллера LPT или как-то ещё) ?
Adlex
Найдите книгу Гук М. Интерфейсы ПК, там все подробно расписано.
Если не найдете - дайте мыло, могу выслать
Леха
Пролистал эту книжку, нашёл такую фразу:
"Помещение дополнительных регистров ECP "за спину" регистров стандартного
порта (смещение 400-402H) преследует две цели ... и возможность определения
факта присутствия ECP-адаптера посредством обращения к его расширенным регистрам".

Вроде как ответ на мой вопрос, но:

Ставлю в BIOS своего компа SPP режим
В диспетчере WinXP:
Printer Port (LPT1)
0378-037F
0778-077B

Ставлю в BIOS ECP режим
В диспетчере WinXP:
ECP Printer Port (LPT1) !!!
0378-037F
0778-077B

Т.е. в обоих случаях присутствуют расширенные регистры, однако система как-то
определяет, что в первом случае это обычный порт, а во втором ECP.
Каким образом ?
Bios71
Цитата(Леха @ Jul 23 2008, 11:44) *
Пролистал эту книжку, нашёл такую фразу:
"Помещение дополнительных регистров ECP "за спину" регистров стандартного
порта (смещение 400-402H) преследует две цели ... и возможность определения
факта присутствия ECP-адаптера посредством обращения к его расширенным регистрам".

Вроде как ответ на мой вопрос, но:

Ставлю в BIOS своего компа SPP режим
В диспетчере WinXP:
Printer Port (LPT1)
0378-037F
0778-077B

Ставлю в BIOS ECP режим
В диспетчере WinXP:
ECP Printer Port (LPT1) !!!
0378-037F
0778-077B

Т.е. в обоих случаях присутствуют расширенные регистры, однако система как-то
определяет, что в первом случае это обычный порт, а во втором ECP.
Каким образом ?


я бы лично проверил ч/з SuperIO она содержит информацию о текущем режиме LPT порта т.к. она его и "организовывает"

это длинно но единственно надежно
VslavX
Цитата(Леха @ Jul 22 2008, 16:11) *
компе (ECP или не ECP). Подскажите, пожалуйста, как это делается (опрашиваются
какие-нибудь регистры контроллера LPT или как-то ещё) ?

У BIOS-ов уже очень давно есть расширение отвечающее за PnP, конфигурацию и управление питанием - ACPI называется. При загрузке ОС корневой энумератор опрашивает BIOS и тот вываливает список имеющихся устройств - с соответствующими PnP идентификаторами - и по этим идентификаторам уже и выясняется какого типа порт и какой драйвер для него грузить. Гляньте в реестре HKLM/System/CurrentControlSet/Enum/ACPI - там список заявленных BIOS-ом устройств вполне читаем - PNP00040x - параллельные порты, PNP00050x - последовательные.
rezident
Цитата(Леха @ Jul 23 2008, 12:44) *
Т.е. в обоих случаях присутствуют расширенные регистры, однако система как-то
определяет, что в первом случае это обычный порт, а во втором ECP.
Система показывает лишь диапазон зарезервированных для LPT-порта адресов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.