Фильтр для USBhub.sys
От: XorNeT  
Дата: 17.01.03 12:19
Оценка:
Задача: написать фильтр для юсбхаба(ов) для перехвата PNPшных
IRP.
На мой взгляд есть 2 решения
1: В реестре для хаба создать UpperFilters = MyFilter
Но править руками реестр в этом месте мне не дают
2: Приаттачиться непосредственно к девайсам (USBPDO-0, USBPDO-1)
Это мне ниче не дало тк когда DispatchPnp какого нибудь юсб драйвера
кидают ИРП вниз через мои фильтры он почему- то не проходит

Кто знает как помочь горю — кричите
Буду рад всем предложениям
Re: Фильтр для USBhub.sys
От: Valerio Россия linkedin.com/in/boronin
Дата: 17.01.03 12:30
Оценка:
XNT>Кто знает как помочь горю — кричите

а WINDDK\src\wdm\usb\filter уже смотрел?
... << RSDN@Home 1.0 beta 4 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re: Фильтр для USBhub.sys
От: KonstBez  
Дата: 17.01.03 14:39
Оценка:
Здравствуйте, XorNeT, Вы писали:

XNT>Задача: написать фильтр для юсбхаба(ов) для перехвата PNPшных

XNT>IRP.
XNT>На мой взгляд есть 2 решения
XNT>1: В реестре для хаба создать UpperFilters = MyFilter
XNT>Но править руками реестр в этом месте мне не дают
XNT>2: Приаттачиться непосредственно к девайсам (USBPDO-0, USBPDO-1)
XNT>Это мне ниче не дало тк когда DispatchPnp какого нибудь юсб драйвера
XNT>кидают ИРП вниз через мои фильтры он почему- то не проходит

XNT>Кто знает как помочь горю — кричите

XNT>Буду рад всем предложениям

Надо по содержимому реестра создать .inf файл для основного устройства (usb hub) и добавить туда строку upper filters с именем твоего фильтра. Далее активировать этот .inf либо вручную стандартным способом, либо с пом. API UpdateDriverForPlugAndPlayDevices. Там 1-й параметр-vendor id, второй-имя .inf файла. Правда, второй способ работает только под 2000/XP.
Re[2]: Фильтр для USBhub.sys
От: XorNeT  
Дата: 17.01.03 14:54
Оценка:
Здравствуйте, Valerio, Вы писали:

XNT>>Кто знает как помочь горю — кричите


V>а WINDDK\src\wdm\usb\filter уже смотрел?


Смотрел конечно
Не проблема написать фильтр для функционального драйвера
Проблема поставить фильтр для драйвера шины так чтобы все обращение к
шине с любого драйвера шло через него
Re[2]: Фильтр для USBhub.sys
От: XorNeT  
Дата: 17.01.03 14:57
Оценка:
Здравствуйте, KonstBez, Вы писали:

KB>Здравствуйте, XorNeT, Вы писали:


XNT>>Задача: написать фильтр для юсбхаба(ов) для перехвата PNPшных

XNT>>IRP.
XNT>>На мой взгляд есть 2 решения
XNT>>1: В реестре для хаба создать UpperFilters = MyFilter
XNT>>Но править руками реестр в этом месте мне не дают
XNT>>2: Приаттачиться непосредственно к девайсам (USBPDO-0, USBPDO-1)
XNT>>Это мне ниче не дало тк когда DispatchPnp какого нибудь юсб драйвера
XNT>>кидают ИРП вниз через мои фильтры он почему- то не проходит

XNT>>Кто знает как помочь горю — кричите

XNT>>Буду рад всем предложениям

KB>Надо по содержимому реестра создать .inf файл для основного устройства (usb hub) и добавить туда строку upper filters с именем твоего фильтра. Далее активировать этот .inf либо вручную стандартным способом, либо с пом. API UpdateDriverForPlugAndPlayDevices. Там 1-й параметр-vendor id, второй-имя .inf файла. Правда, второй способ работает только под 2000/XP.


Все отлично тока одно но
Шоб сработал инф нужно удалить все записи в реестре а для этого
удалить ЮСБ хаб из девайс манаджера. И потом ставить его самостоятельно,
а вот этого как раз и не хотелось
Re[3]: Фильтр для USBhub.sys
От: Valerio Россия linkedin.com/in/boronin
Дата: 17.01.03 15:00
Оценка:
моя вина, понял это уже также, но пост был отправлен...

XNT>Смотрел конечно

XNT>Не проблема написать фильтр для функционального драйвера
XNT>Проблема поставить фильтр для драйвера шины так чтобы все обращение к
XNT>шине с любого драйвера шло через него
... << RSDN@Home 1.0 beta 4 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[3]: Фильтр для USBhub.sys
От: KonstBez  
Дата: 20.01.03 06:24
Оценка: 2 (1)
Здравствуйте, XorNeT, Вы писали:

XNT>Здравствуйте, KonstBez, Вы писали:


KB>>Здравствуйте, XorNeT, Вы писали:


XNT>>>Задача: написать фильтр для юсбхаба(ов) для перехвата PNPшных

XNT>>>IRP.
XNT>>>На мой взгляд есть 2 решения
XNT>>>1: В реестре для хаба создать UpperFilters = MyFilter
XNT>>>Но править руками реестр в этом месте мне не дают
XNT>>>2: Приаттачиться непосредственно к девайсам (USBPDO-0, USBPDO-1)
XNT>>>Это мне ниче не дало тк когда DispatchPnp какого нибудь юсб драйвера
XNT>>>кидают ИРП вниз через мои фильтры он почему- то не проходит

XNT>>>Кто знает как помочь горю — кричите

XNT>>>Буду рад всем предложениям

KB>>Надо по содержимому реестра создать .inf файл для основного устройства (usb hub) и добавить туда строку upper filters с именем твоего фильтра. Далее активировать этот .inf либо вручную стандартным способом, либо с пом. API UpdateDriverForPlugAndPlayDevices. Там 1-й параметр-vendor id, второй-имя .inf файла. Правда, второй способ работает только под 2000/XP.


XNT>Все отлично тока одно но

XNT>Шоб сработал инф нужно удалить все записи в реестре а для этого
XNT>удалить ЮСБ хаб из девайс манаджера. И потом ставить его самостоятельно,
XNT>а вот этого как раз и не хотелось

Если использовать UpdateDriverForPlugAndPlayDevices, то ничего удалять не надо. Более того, .inf файл для основного устройства может быть минимальным, т.е. содержать далеко не всю информацию, какая есть в реестре для данного утсройства. Информация, не упомянутая в инфе, после вызова UpdateDriverForPlugAndPlayDevices сохранится. Это проверено под Win2000 и XP для драйвера звуковой карты (PCI).
Re[4]: Фильтр для USBhub.sys
От: XorNeT  
Дата: 20.01.03 12:38
Оценка:
Здравствуйте, KonstBez, Вы писали:

KB>Здравствуйте, XorNeT, Вы писали:


XNT>>Здравствуйте, KonstBez, Вы писали:


KB>>>Здравствуйте, XorNeT, Вы писали:


XNT>>>>Задача: написать фильтр для юсбхаба(ов) для перехвата PNPшных

XNT>>>>IRP.
XNT>>>>На мой взгляд есть 2 решения
XNT>>>>1: В реестре для хаба создать UpperFilters = MyFilter
XNT>>>>Но править руками реестр в этом месте мне не дают
XNT>>>>2: Приаттачиться непосредственно к девайсам (USBPDO-0, USBPDO-1)
XNT>>>>Это мне ниче не дало тк когда DispatchPnp какого нибудь юсб драйвера
XNT>>>>кидают ИРП вниз через мои фильтры он почему- то не проходит

XNT>>>>Кто знает как помочь горю — кричите

XNT>>>>Буду рад всем предложениям

KB>>>Надо по содержимому реестра создать .inf файл для основного устройства (usb hub) и добавить туда строку upper filters с именем твоего фильтра. Далее активировать этот .inf либо вручную стандартным способом, либо с пом. API UpdateDriverForPlugAndPlayDevices. Там 1-й параметр-vendor id, второй-имя .inf файла. Правда, второй способ работает только под 2000/XP.


XNT>>Все отлично тока одно но

XNT>>Шоб сработал инф нужно удалить все записи в реестре а для этого
XNT>>удалить ЮСБ хаб из девайс манаджера. И потом ставить его самостоятельно,
XNT>>а вот этого как раз и не хотелось

KB>Если использовать UpdateDriverForPlugAndPlayDevices, то ничего удалять не надо. Более того, .inf файл для основного устройства может быть минимальным, т.е. содержать далеко не всю информацию, какая есть в реестре для данного утсройства. Информация, не упомянутая в инфе, после вызова UpdateDriverForPlugAndPlayDevices сохранится. Это проверено под Win2000 и XP для драйвера звуковой карты (PCI).


Интересная идея — сразу сел пробовать. Только проблемма — вункция возвращает фалсе
и ошибка: No more data is available
Может есть варианты почему? (понятно что глюк где-то в инфе)
Re[5]: Фильтр для USBhub.sys
От: KonstBez  
Дата: 21.01.03 08:58
Оценка:
Здравствуйте, XorNeT, Вы писали:

XNT>Здравствуйте, KonstBez, Вы писали:


KB>>Здравствуйте, XorNeT, Вы писали:


XNT>>>Здравствуйте, KonstBez, Вы писали:


KB>>>>Здравствуйте, XorNeT, Вы писали:


XNT>>>>>Задача: написать фильтр для юсбхаба(ов) для перехвата PNPшных

XNT>>>>>IRP.
XNT>>>>>На мой взгляд есть 2 решения
XNT>>>>>1: В реестре для хаба создать UpperFilters = MyFilter
XNT>>>>>Но править руками реестр в этом месте мне не дают
XNT>>>>>2: Приаттачиться непосредственно к девайсам (USBPDO-0, USBPDO-1)
XNT>>>>>Это мне ниче не дало тк когда DispatchPnp какого нибудь юсб драйвера
XNT>>>>>кидают ИРП вниз через мои фильтры он почему- то не проходит

XNT>>>>>Кто знает как помочь горю — кричите

XNT>>>>>Буду рад всем предложениям

KB>>>>Надо по содержимому реестра создать .inf файл для основного устройства (usb hub) и добавить туда строку upper filters с именем твоего фильтра. Далее активировать этот .inf либо вручную стандартным способом, либо с пом. API UpdateDriverForPlugAndPlayDevices. Там 1-й параметр-vendor id, второй-имя .inf файла. Правда, второй способ работает только под 2000/XP.


XNT>>>Все отлично тока одно но

XNT>>>Шоб сработал инф нужно удалить все записи в реестре а для этого
XNT>>>удалить ЮСБ хаб из девайс манаджера. И потом ставить его самостоятельно,
XNT>>>а вот этого как раз и не хотелось

KB>>Если использовать UpdateDriverForPlugAndPlayDevices, то ничего удалять не надо. Более того, .inf файл для основного устройства может быть минимальным, т.е. содержать далеко не всю информацию, какая есть в реестре для данного утсройства. Информация, не упомянутая в инфе, после вызова UpdateDriverForPlugAndPlayDevices сохранится. Это проверено под Win2000 и XP для драйвера звуковой карты (PCI).


XNT>Интересная идея — сразу сел пробовать. Только проблемма — вункция возвращает фалсе

XNT>и ошибка: No more data is available
XNT>Может есть варианты почему? (понятно что глюк где-то в инфе)


Разумеется в инфе есть обязательные поля. Привожу найденную опытным путем минимальную конфигурацию (меньше уже не работает):

[Version]
Signature="$Windows NT$"
Class=Media
Provider=%FilterMfgName%
[SourceDisksNames]
1=%DiskName%
[Manufacturer]
%FilterMfgName%=FilterCorp
[FilterCorp]
%FilterDeviceDesc%=FilterInstall, pci\ven_1274&dev_5880&subsys_20001274
[FilterInstall.Services]
AddService=sbpci,0x00000002,FilterServInst
[FilterInstall.HW]
AddReg=FilterInstall.HW.AddReg
[FilterInstall.HW.AddReg]
HKR,,"UpperFilters",0x10000,"MyFilter"
[FilterServInst]
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\sbpci.sys
[Strings]
FilterMfgName="Creative Technology Ltd."
DiskName="Disk 1"
FilterDeviceDesc="Creative Sound Blaster AudioPCI (WDM)"
Re[6]: Фильтр для USBhub.sys
От: XorNeT  
Дата: 21.01.03 11:45
Оценка:
XNT>>>>>>Задача: написать фильтр для юсбхаба(ов) для перехвата PNPшных
XNT>>>>>>IRP.
XNT>>>>>>На мой взгляд есть 2 решения
XNT>>>>>>1: В реестре для хаба создать UpperFilters = MyFilter
XNT>>>>>>Но править руками реестр в этом месте мне не дают
XNT>>>>>>2: Приаттачиться непосредственно к девайсам (USBPDO-0, USBPDO-1)
XNT>>>>>>Это мне ниче не дало тк когда DispatchPnp какого нибудь юсб драйвера
XNT>>>>>>кидают ИРП вниз через мои фильтры он почему- то не проходит

XNT>>>>>>Кто знает как помочь горю — кричите

XNT>>>>>>Буду рад всем предложениям

KB>>>>>Надо по содержимому реестра создать .inf файл для основного устройства (usb hub) и добавить туда строку upper filters с именем твоего фильтра. Далее активировать этот .inf либо вручную стандартным способом, либо с пом. API UpdateDriverForPlugAndPlayDevices. Там 1-й параметр-vendor id, второй-имя .inf файла. Правда, второй способ работает только под 2000/XP.


XNT>>>>Все отлично тока одно но

XNT>>>>Шоб сработал инф нужно удалить все записи в реестре а для этого
XNT>>>>удалить ЮСБ хаб из девайс манаджера. И потом ставить его самостоятельно,
XNT>>>>а вот этого как раз и не хотелось

KB>>>Если использовать UpdateDriverForPlugAndPlayDevices, то ничего удалять не надо. Более того, .inf файл для основного устройства может быть минимальным, т.е. содержать далеко не всю информацию, какая есть в реестре для данного утсройства. Информация, не упомянутая в инфе, после вызова UpdateDriverForPlugAndPlayDevices сохранится. Это проверено под Win2000 и XP для драйвера звуковой карты (PCI).


XNT>>Интересная идея — сразу сел пробовать. Только проблемма — вункция возвращает фалсе

XNT>>и ошибка: No more data is available
XNT>>Может есть варианты почему? (понятно что глюк где-то в инфе)

KB>

KB>Разумеется в инфе есть обязательные поля. Привожу найденную опытным путем минимальную конфигурацию (меньше уже не работает):

KB>[Version]

KB>Signature="$Windows NT$"
KB>Class=Media
KB>Provider=%FilterMfgName%
KB>[SourceDisksNames]
KB>1=%DiskName%
KB>[Manufacturer]
KB>%FilterMfgName%=FilterCorp
KB>[FilterCorp]
KB>%FilterDeviceDesc%=FilterInstall, pci\ven_1274&dev_5880&subsys_20001274
KB>[FilterInstall.Services]
KB>AddService=sbpci,0x00000002,FilterServInst
KB>[FilterInstall.HW]
KB>AddReg=FilterInstall.HW.AddReg
KB>[FilterInstall.HW.AddReg]
KB>HKR,,"UpperFilters",0x10000,"MyFilter"
KB>[FilterServInst]
KB>ServiceType=1
KB>StartType=3
KB>ErrorControl=1
KB>ServiceBinary=%12%\sbpci.sys
KB>[Strings]
KB>FilterMfgName="Creative Technology Ltd."
KB>DiskName="Disk 1"
KB>FilterDeviceDesc="Creative Sound Blaster AudioPCI (WDM)"



На самом деле все гораздо хуже.
Я брал и дописывал в usb.inf так что там информация есть обо всем.
Но с того времени Ласт Еррор не изменился
Дальше больше: Проставил я этот инф руками — все получилось фильтр стал поверх хаба
только проблема в том что пнпшные ирпы все равно через мой фильтр ходить не хотят
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.