Ответ: (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 19 февраля 2004 г. 12:46
В ответ на: есть ли возможность в винде (например 2000) сделать виртуальный LPT порт? отправлено yes 19 февраля 2004 г. 09:23

Структура драйверов LPT такая - есть драйвер-арбитр, который знает, где его карточки порты от PnP-менеджера. И есть класс-драйверы, которые, если им нравится, запрашивают у драйвера-арбитра доступ, узнают где порты, и дальше работают напрямуб с портами уже сами. Так что таким методом Вы не добьетесь желаемого - драйвера-арбитры LPT почти не ведут работы с портами, исключая некоторую функциональность в части IEEE-1284. А класс-драйверы пишут кому не лень, и все они работают с портами напрямую. Так как недавно сам делал систему драйверов для JTAG'а PCI'ного, это знаю точно. При этом некоторые драйверы используют вызовы апи для ввода-вывода в порты, а некоторые наглые IN и OUT.

Вам, как я понял, надо перехватить обращения к портам, и устроить какой-то свой виртуальный порт, который был бы совместим со всем и вся. Для этого надо посадить какой-то отвлеченный от LPT и всего остального драйвер, причем чтобы он грузился ДО загрузки всех остальных PnP-драйверов. Этот драйвер должен средствами защищенного режима виндов отлавливать обращения к Вашим портам, и их обрабатывать. Это, как мне кажется, не реально если использовать документированные средства. А вот если достаточно открыть эти порты только для ДОС-режима, то все проще. Это называется VDD и пишется в виде DLL'ки довольно просто.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru