Доброго времени суток всем гуру. Очень нужен совет по subj. Собственно, возникла необходимость в очень тесном общении между драйвером и службой. Конкретнее: драйвер патчит KeServiceDescriptorTable, и хукает NtCreateFile, затем отслеживает открытие файлов с определенным флагом и отдает имя этого файла сервису. От первой возникнувшей мысли — взводить Event, по которому сервис бы через DeviceIOContol читал бы буфер с именем файла — пришлось отказаться. Что если, к примеру, будет массовое открытие файлов? Произойдет потеря информации. Посмотрел в исходниках filemon — как-то все запутанно, динамический список логов, переключение между ними... Натолкните на мысль, не верю что никто не решал подобную задачу и что нет способа решить проблему проще. P.S Прочитал статью №14 уважаемого Four-F. На неё прошу не отсылать, т.к. нашел решение для относительно "медленного" потока информации.
filemon делает просто - выделяет буфер фиксированного размера, цепляет его в односвязный (кажется) список и потихоньку начинает забивать инфой. Когда буфер подходит к концу, выделяет новый, цепляет к списку и т.д. Когда от юзера приходит запрос, отцепляет самый старый буфер и сбрасывает его юзеру. Если память меня не подводит, то как то так. Тебе, наверное, имеет смысл что-то подобное сделать.