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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Фильтр-драйвер над usbstor.sys  (Прочитано 10671 раз)
0 Пользователей и 1 Гость смотрят эту тему.
white_mouse
Гость
« : 10-04-2010 07:50 » 

Доброго времени суток.
Пишу фильтр-драйвер для флешек(всех подключенных и подключаемых). За все mass storages отвечает usbstor.sys - классовый драйвер. Вопрос: какой ClassGUID использовать, чтоб фильтр-драйвер на usbstor.sys повесить?  В MSDN сказано что ClassGUID={36FC9E60-C465-11CF-8056-444553540000} - не для переферии.
Записан
resource
Молодой специалист

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

« Ответ #1 : 10-04-2010 09:08 » 

В MSDN сказано что ClassGUID={36FC9E60-C465-11CF-8056-444553540000} - не для переферии.

Имеет смысл привести ссылку.

Я так думаю что использовать надо
Disk Drives
Class = DiskDrive
ClassGuid = {4d36e967-e325-11ce-bfc1-08002be10318}
Записан
Ochkarik
Модератор

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

« Ответ #2 : 10-04-2010 13:36 » 

https://forum.shelek.ru/index.php/topic,460.0.html
и
http://msdn.microsoft.com/en-us/library/ff541392(VS.85).aspx
 Ага
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
white_mouse
Гость
« Ответ #3 : 11-04-2010 09:39 » 

По поводу ссылки:
        http://www.osronline.com/ddkx/install/setup-cls_2i1z.htm
Такой-же список есть в MSDN (ссылка на работе А черт его знает...)

По-поводу
Цитата
Я так думаю что использовать надо
Disk Drives
Class = DiskDrive
ClassGuid = {4d36e967-e325-11ce-bfc1-08002be10318}

Фильтр аттачится к disk.sys, а хотелось бы - к usbstor.sys

Задумка такая:
Вставляется флэшка, определяется как USB Mass Storage и загружается UsbStor.SYS (как драйвер, который отвечает за этот класс устройств). После этого над USBSTOR.sys аттачится мой фильтр и что-то делает c IPR-пакетами. Когда флэшка отключается из системы выгружается мой фильтр а потом USBSTOR.SYS.

Пробовал использовать:

Disk Drives
Class = DiskDrive
ClassGuid = {4d36e967-e325-11ce-bfc1-08002be10318} - аттачится к disk.sys

Memory Technology Driver
Class = MTD
ClassGuid = {4d36e970-e325-11ce-bfc1-08002be10318}
This class includes memory devices, such as flash memory cards. - WinDBG молчит. При загрузке с помощью net start  говорит что такого устройства в системе нет (это при том, что в USB флешка торчит)

Storage Volumes
Class = Volume
ClassGuid = {71a27cdd-812a-11d0-bec7-08002be2092f}
This class includes storage volumes as defined by the system-supplied logical volume manager and class drivers that create device objects to represent storage volumes, such as the system disk class driver.  - аттачится  к VolSpan.sys

USB
Class = USB
ClassGuid = {36fc9e60-c465-11cf-8056-444553540000}
This class includes USB host controllers and USB hubs, but not USB peripherals. Drivers for this class are system-supplied. - аттачится ко всему USBXXX.SYS


По поводу ссылок - завтра попробую и отпишусь. Здесь была моя ладья...
Записан
resource
Молодой специалист

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

« Ответ #4 : 11-04-2010 10:42 » 

Или я чего-то недопонимаю, или вы сами себе усложняете задачу. Задача перехватывать обращения к флэшке как к диску? Если да, то DiskDrive вполне подойдет. Чтоб как-то всё-таки определиться что именно надо, стоит посмотреть на такую картинку http://msdn.microsoft.com/en-us/library/ff552547.aspx
Здесь хорошо видно, что usbstor.sys сидит над usbhub.sys, а вот здесь http://msdn.microsoft.com/en-us/library/ff546289(VS.85).aspx вполне однозначно описано как это происходит. Сам-то usbstorage использует
Код:
USB 
Class = USB
ClassGuid = {36fc9e60-c465-11cf-8056-444553540000}

В принципе, чтоб там ни было написано, я не вижу причин, которые мешали бы использовать тот же ClassGuid (пробовать надо). Только тут надо понимать, что приатачишься в этом случае не только к usbstorage. Чтоб этого не случилось, надо смотреть, как написан usbstor.inf (во второй ссылке пояснено, что и как). Но зачем? Ну окажешься прям между usbstorage и Disk, ну и что дальше?. Как там работать я что-то не очень себе представляю (возможно, просто потому, что не пробовал). Мне всё-таки кажется, что проще было бы сидеть на Class = DiskDrive. Дело, конечно, ваше, информация вся есть.
« Последнее редактирование: 11-04-2010 11:27 от resource » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines