Задача: написать фильтр для юсбхаба(ов) для перехвата PNPшных
IRP.
На мой взгляд есть 2 решения
1: В реестре для хаба создать UpperFilters = MyFilter
Но править руками реестр в этом месте мне не дают
2: Приаттачиться непосредственно к девайсам (USBPDO-0, USBPDO-1)
Это мне ниче не дало тк когда DispatchPnp какого нибудь юсб драйвера
кидают ИРП вниз через мои фильтры он почему- то не проходит
Кто знает как помочь горю — кричите
Буду рад всем предложениям
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.
Здравствуйте, 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.
Здравствуйте, Valerio, Вы писали:
XNT>>Кто знает как помочь горю — кричите
V>а WINDDK\src\wdm\usb\filter уже смотрел?
Смотрел конечно
Не проблема написать фильтр для функционального драйвера
Проблема поставить фильтр для драйвера шины так чтобы все обращение к
шине с любого драйвера шло через него
Здравствуйте, 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>шине с любого драйвера шло через него
... << 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.
Здравствуйте, 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).
Здравствуйте, 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
Может есть варианты почему? (понятно что глюк где-то в инфе)
Здравствуйте, 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>Может есть варианты почему? (понятно что глюк где-то в инфе)
Разумеется в инфе есть обязательные поля. Привожу найденную опытным путем минимальную конфигурацию (меньше уже не работает):
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 так что там информация есть обо всем.
Но с того времени Ласт Еррор не изменился
Дальше больше: Проставил я этот инф руками — все получилось фильтр стал поверх хаба
только проблема в том что пнпшные ирпы все равно через мой фильтр ходить не хотят