Взаимодействие драйвера и службы

Тема в разделе "WASM.WIN32", создана пользователем Fork, 3 июл 2005.

  1. Fork

    Fork New Member

    Публикаций:
    0
    Регистрация:
    3 июл 2005
    Сообщения:
    1
    Адрес:
    Taganrog
    Доброго времени суток всем гуру. Очень нужен совет по subj.

    Собственно, возникла необходимость в очень тесном общении между драйвером и службой. Конкретнее: драйвер патчит KeServiceDescriptorTable, и хукает NtCreateFile, затем отслеживает открытие файлов с определенным флагом и отдает

    имя этого файла сервису.

    От первой возникнувшей мысли — взводить Event, по которому сервис бы через DeviceIOContol читал бы буфер с именем файла — пришлось отказаться. Что если, к примеру, будет массовое открытие файлов? Произойдет потеря информации.

    Посмотрел в исходниках filemon — как-то все запутанно, динамический список логов, переключение между ними...



    Натолкните на мысль, не верю что никто не решал подобную задачу и что нет способа решить проблему проще.



    P.S Прочитал статью №14 уважаемого Four-F. На неё прошу не отсылать, т.к. нашел решение для относительно "медленного" потока информации.
     
  2. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    filemon делает просто - выделяет буфер фиксированного размера, цепляет его в односвязный (кажется) список и потихоньку начинает забивать инфой. Когда буфер подходит к концу, выделяет новый, цепляет к списку и т.д. Когда от юзера приходит запрос, отцепляет самый старый буфер и сбрасывает его юзеру. Если память меня не подводит, то как то так. Тебе, наверное, имеет смысл что-то подобное сделать.