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

Discussion in 'WASM.WIN32' started by Ant123, Feb 24, 2005.

  1. Ant123

    Ant123 New Member

    Blog Posts:
    0
    Joined:
    Feb 24, 2005
    Messages:
    5
    Location:
    Russia
    Добрый день!

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

    TermoSINteZ Синоби даоса Staff Member

    Blog Posts:
    2
    Joined:
    Jun 11, 2004
    Messages:
    3,568
    Location:
    Russia
    Используй драйвер фильтр .. стандартный ты уже врятли выгрузишь .
     
  3. Ant123

    Ant123 New Member

    Blog Posts:
    0
    Joined:
    Feb 24, 2005
    Messages:
    5
    Location:
    Russia
    Тогда вопрос: а как повеситься на прерывания стандартного COM порта?

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

    TermoSINteZ Синоби даоса Staff Member

    Blog Posts:
    2
    Joined:
    Jun 11, 2004
    Messages:
    3,568
    Location:
    Russia
    А там надо обрабьатывать перехваченные IRP запросы . На скока я понимаю IRP попадает в твой драйвер фильтр и ты его обрабатываешь ... Почитай 15 и 16 статьи Four-F , там подробно про фильтрацию написано.
     
  5. Ant123

    Ant123 New Member

    Blog Posts:
    0
    Joined:
    Feb 24, 2005
    Messages:
    5
    Location:
    Russia
    Возможно я что-то где-то недочитал или недоискал, но как сделать свой обработчик прерываний от COM порта в драйвере-фильтре я не нашел.
     
  6. Four-F

    Four-F New Member

    Blog Posts:
    0
    Joined:
    Aug 31, 2002
    Messages:
    1,237
    Ant123, можешь похучить массив MajorFunction интересующего тебя драйвера.
     
  7. Ant123

    Ant123 New Member

    Blog Posts:
    0
    Joined:
    Feb 24, 2005
    Messages:
    5
    Location:
    Russia
    1)А разве через MajorFunction можно подписаться на прирывание получения символа (именно это прерывание мне особо необходимо)



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

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

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

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

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



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

    Four-F New Member

    Blog Posts:
    0
    Joined:
    Aug 31, 2002
    Messages:
    1,237
    <font color="gray][ Ant123</font><!--color--><font color="gray]: А разве через MajorFunction можно подписаться на прирывание получения символа ]</font><!--color-->



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

    Trashy New Member

    Blog Posts:
    0
    Joined:
    Dec 24, 2004
    Messages:
    44
    Location:
    Russia
    >>управление этому потоку до тех пор пока не происходит >>ожидаемое событие.

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



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

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

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