Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: WPD фильтр драйвер.  (Прочитано 9729 раз)
0 Пользователей и 1 Гость смотрят эту тему.
vitaly
Новенький

ru
Offline Offline

« : 21-04-2017 17:01 » 

Стоит задача отслеживать все операции с файлами и по возможности некоторые из этих операций блокировать (чтение, запись).
Для этого был написан minifilter драйвер, который с этим вполне успешно справляется с устройствами типа жесткий диск, usb-флэшка, CD-ROM.
Но вот пакеты для устройств относящиеся к классу Windows Portable Device, через этот мой фильтр не ходят. И я их не то что блокировать, но даже отслеживать не могу.

Думаю для этого надо писать отдельный драйвер. Но вот какой?
WDM фильтр-драйвер класса (WPD)?
UMDF фильтр?

Какой тип драйвера выбрать для отслеживания\выборочной блокировки файловых операций на WPD устройствах?
Сейчас стоит задача мониторить WPD на USB, но дальше вероятно и на Bluetooth.



Добавлено через 18 минут и 5 секунд:
Забыл еще указать что драйвер должен работать в Win7, Win8, Win10? 32/64.



« Последнее редактирование: 21-04-2017 17:19 от vitaly » Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 21-04-2017 17:24 » 

может посмотреть куда пример ставят?
The WpdMultiTransportDriver Sample

Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
vitaly
Новенький

ru
Offline Offline

« Ответ #2 : 21-04-2017 17:43 » 

Спасибо, посмотрю WpdMultiTransportDriver.
Судя по картинке, это то что нужно.

В этой точке можно же будет получить: полный путь и имя файла, имя или PID процесса от имени которого совершается операция,
а главное выборочно блокировать некоторые действия пользователя?



Добавлено через 39 минут и 43 секунды:
Вот еще интересная ссылка по теме. https://www.osronline.com/showthread.cfm?link=281653
« Последнее редактирование: 21-04-2017 18:23 от vitaly » Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 24-04-2017 09:39 » 

vitaly, вот честно говоря так сразу не скажу. надо пример разбирать.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
vitaly
Новенький

ru
Offline Offline

« Ответ #4 : 04-05-2017 15:15 » new

Ну в общем с WpdMultiTransportDriver ничего не получилось. Этот пример демонстрирует создание драйвера конечного WPD устройства, но ни как не фильтра WPD класса.
Поэтому я написал KMDF драйвер фильтр (upper) класса, подсадил его туда же где сидит WpdUpFltr. 
Но! Но в результате я в EvtIoDeviceControl получаю кучу параметров.
    IN WDFQUEUE       Queue,
    IN WDFREQUEST   Request,
    IN size_t               OutputBufferLength,
    IN size_t               InputBufferLength,
    IN ULONG             IoControlCode
И что с этим делать непонятно.
Как из этого всего извлечь коды операций, да хотя бы понять, что идет запись\чтение  файла, и получить имя этого файла.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines