[возможно повтор] Как включить порты?

Тема в разделе "WASM.ELECTRONICS", создана пользователем ubil, 29 апр 2006.

  1. ubil

    ubil New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2004
    Сообщения:
    203
    Адрес:
    ODESSA:)
    Эта тема уже была, но ее вроде так и не разрулили. Вопрос в том, что нужно сделать с портами принтера(0x378-0x37a, например), чтобы обращение к ним приводило к изменению состояния самого устройства "LPT-порт". Автор предыдущей одноименной темы отмечал, что обращение к портам не приводит ни к какому результату в плане работы устройства, если соответствующий стандартный драйвер не загружен. А теперь я обнаружил, что на некоторый машинах (с некоторыми паками винды возможно) также обращение к портам не приводит ни к какому результату даже при загруженном стандартном драйвере.

    Так вот вопрос состоит в том, что же с портами нужно сделать, чтобы гарантированно можно было с ними работать???



    И еще вопрос из той же оперы: как можно программно маскировать/размаскировывать прерывания? Я уже убедился, что пока в дивайс-менеджере не поставишь опцию "Использовать любое прерывание предназначенное порту", никакие команды типа

    in al,0x21

    and al,0x7f

    out 0x21,al

    не приведут к размаскировке IRQ7.

    Выходит и эти порты тоже заблокированны?
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    LPT на NT - клинический случай. Решение одно - драйвер. Не нравится - сносите винду и покупайте дискетку с досом.
     
  3. ubil

    ubil New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2004
    Сообщения:
    203
    Адрес:
    ODESSA:)
    Quantum

    Вы, наверное, не поняли. Я спрашивал что я должен сделать чтобы включить порты, находясь в своем драйвере, который, правда, стоит не как драйвер LPT, а как какой-нибудь другой.

    Если случай и вправду клинический, то все-равно хотелось бы знать хотябы, что там происходит при обращении, и почему оно ни к чему не приводит.
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine


    Portmon не работает на многих машинах. Мне кажется, что глюк таится в фирменном драйвере принтера. 100% уверенности, конечно, нет. Ещё факт: в документации к LPT-заглушкам хаспа и rainbow часто пишут, что драйверное ПО принтера может перекрывать доступ к порту и рекомендуют хотя бы выключать принтер перед использованием заглушки. В обоих случаях (и в портмоне, и в хаспе) используется драйвер, но работает не всегда. Отчасти из-за этого, наверное, заглушки теперь в основном USB-шные.



    В общем, если Вы написали драйвер, включили в нём маппинг этих портов (как в соседнем топике писалось с ссылками на статьи), а порты всё равно закрыты... мои скудные познания в области нулевого кольца не позволяют ещё что-либо порекомендовать.
     
  5. ubil

    ubil New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2004
    Сообщения:
    203
    Адрес:
    ODESSA:)
    Ладно, придется ботать пример TOTAL IO похоже. А мне раньше казалось что всем ядерным потокам все порты доступны. А если бы юыли бы недоступны, то должно было бы происходить какое-нибудь исключение типа "ACCESS VIOLATION". Что-то мне кажется что это все происки PnP менеджера, с которым parport.sys сильно скорешился...