Программная установка драйвера

Тема в разделе "WASM.WIN32", создана пользователем Ant123, 24 фев 2005.

  1. Ant123

    Ant123 New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2005
    Сообщения:
    5
    Адрес:
    Russia
    Добрый день!

    У меня есть нестандартный драйвер для COM порта. В ходе выполнения программы необходимо подменить стандартный драйвер COM порта на мой, а затем обратно. Подскажите пожалуйста, как это сделать.
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Используй драйвер фильтр .. стандартный ты уже врятли выгрузишь .
     
  3. Ant123

    Ant123 New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2005
    Сообщения:
    5
    Адрес:
    Russia
    Тогда вопрос: а как повеситься на прерывания стандартного COM порта?

    Как это сделать в vxd я знаю, но мой драйвер должен работать в 2k и XP
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    А там надо обрабьатывать перехваченные IRP запросы . На скока я понимаю IRP попадает в твой драйвер фильтр и ты его обрабатываешь ... Почитай 15 и 16 статьи Four-F , там подробно про фильтрацию написано.
     
  5. Ant123

    Ant123 New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2005
    Сообщения:
    5
    Адрес:
    Russia
    Возможно я что-то где-то недочитал или недоискал, но как сделать свой обработчик прерываний от COM порта в драйвере-фильтре я не нашел.
     
  6. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Ant123, можешь похучить массив MajorFunction интересующего тебя драйвера.
     
  7. Ant123

    Ant123 New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2005
    Сообщения:
    5
    Адрес:
    Russia
    1)А разве через MajorFunction можно подписаться на прирывание получения символа (именно это прерывание мне особо необходимо)



    2)Как я понял,

    стандартный драйвер COM порта предусматривает единственный вариант уведомления:

    - посылая IOCTL_SERIAL_SET_WAIT_MASK подписываюсь на интерресующее меня событие (прием символа)

    - с помощью IOCTL_SERIAL_WAIT_ON_MASK в отдельном потоке драйвера ждем события. деспетчер I/O не возвращает управление этому потоку до тех пор пока не происходит ожидаемое событие.

    Но этот вариант меня не очень устраивает.



    Возможно существуют другие способы...
     
  8. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    <font color="gray][ Ant123</font><!--color--><font color="gray]: А разве через MajorFunction можно подписаться на прирывание получения символа ]</font><!--color-->



    Нет, конечно. Просто из вопроса не очень ясно было зачем подменять драйвер.
     
  9. Trashy

    Trashy New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2004
    Сообщения:
    44
    Адрес:
    Russia
    >>управление этому потоку до тех пор пока не происходит >>ожидаемое событие.

    >>Но этот вариант меня не очень устраивает



    Ты наверное из тех, кто думает, что каждый новый СПЯЩИЙ поток жрёт системные ресурсы?

    Чем тебя это не устраивает?

    Ну состряпай APC. Только не знаю, работает ли эта технология в режиме ядра...