Как правильно передавать данные из драйвера в приложение

Тема в разделе "WASM.NT.KERNEL", создана пользователем serega28, 7 сен 2008.

  1. serega28

    serega28 Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    115
    Адрес:
    Minsk
    Каким образом реализовать когда в драйвер приходят IRP_MJ_READ или IRP_MJ_WRITE передать содержимое буфера определенному приложению.
     
  2. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    наверно надо регистрировать процедуры обработки этих IRP.
    Если все таки передавать определенному приложению то наверно лучше использовать IOCTL

    вот здесь можно почитать подробнее
    http://www.wasm.ru/series.php?sid=9

    по данному вопросу полно информации в гугле также есть


    под определенным приложением я имел ввиду свое конечно же
     
  3. serega28

    serega28 Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    115
    Адрес:
    Minsk
    Мне нуно вот такое реализовать:
    Драйвер запускается вместе системой.

    Когда приходят запросы IRP_MJ_READ и WRITE то драйвер должен проверить запущен ли определенный юзерский процесс под названием "XXX". Если данный процесс запущен то мы аттачимся к нему, находим в памяти юзерского процесса определенную сигнатуру( в юзермоде char Buffer[]="SIGN") и в этом место драйвер пихает данные полученные от READ или WRITE.

    А как аттачится к юзерскому процессу и пихать данные туда???
     
  4. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    пардон, я еще совсем бегиннерс, не осознал сути вопроса, нашел что определить можно по полю IRP Tail.Overlay.Thread, в MSDN написано Is a pointer to the caller's thread control block
     
  5. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    я только несовсем понял зачем нужно проверять запущен ли ХХХ по приходу этих IRP?? приатачиться к процессу можно меняя адресное пространство на его, прочитал что для этого используют функции KeAttachProcess KeStackAttachProcess
     
  6. Malwara

    Malwara New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2008
    Сообщения:
    30
    ZwQuerySystemInformation
    PsLookupProcessByProcessId
    KeAttachProcess

    <че надо>

    KeDetachProcess