Фильтр драйвер

Тема в разделе "WASM.BEGINNERS", создана пользователем toruserr, 25 окт 2010.

  1. toruserr

    toruserr New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2010
    Сообщения:
    2
    Мне нужно перехватывать определенные пакеты от usb геймпада и блокировать их доставку к драйверу геймпада. Как я понял мне нужен фильтр-драйвер.

    Поискав исходники наткнулся на это. По описанию то что мне нужно.
    Хочу доработать фильтр из DDk\2600\src\wdm\usb\filter\. Для установки нехватает inf файла. Я его доработал, но похоже что неправильно.

    Вот его текст.
    =================================================
    Код (Text):
    1. [Version]
    2. Signature="$Chicago$"
    3. Class=Unknown
    4. DriverVer=02/22/2003,1.0.0.0
    5.  
    6.  
    7. [Manufacturer]
    8. "ThisVendor"=THIS_VENDOR
    9.  
    10. [THIS_VENDOR]
    11. "My device description" = My_Install_Section,    USB\VID_0F30&PID_0111
    12.  
    13. [DestinationDirs]
    14. DefaultDestDir=     10,system32\drivers
    15. InstallSection_CopyFiles32_NT= 11
    16.  
    17. [My_Install_Section.NT]
    18. Copyfiles = MyCopyFiles
    19. AddReg = MyAddReg
    20.  
    21.  
    22. [My_Install_Section.NT.HW]
    23. AddReg = My_HW_AddReg
    24.  
    25. [MyCopyFiles]
    26. filter.sys
    27.  
    28.  
    29. [MyAddReg]
    30.  
    31.  
    32. [My_Install_Section.NT.Services]
    33.  
    34. AddService = FilterService,,Filter_Service_Inst
    35.  
    36.  
    37.  
    38. [My_HW_AddReg]
    39.  
    40. HKR,,"LowerFilters",0x00010000,"FilterService"
    41. ;HKR,,"UpperFilters",0x00010000,"FilterService"
    42. HKR,,"SampleFilterParam",0x00010001,512
    43.  
    44.  
    45. [Filter_Service_Inst]
    46. DisplayName = "Filter Service"
    47. ServiceType = 1 ;%SERVICE_KERNEL_DRIVER%
    48. StartType = 3 ;%SERVICE_DEMAND_START%
    49. ErrorControl = 0 ;%SERVICE_ERROR_IGNORE%
    50. ServiceBinary = %12%\filter.sys
    51. LoadOrderGroup = extended base
    =================================================


    При попытке установить пкм на filter.inf-> установить. Ничего не происходит.

    Пытался установить чз Установку оборудования в панели управления указывая расположение инф файла. В итоге filter.sys скопировался в system32\Drivers. Но в реестре никаких изменений. А в конце установки написал мне такое "Ошибка установки вследствие того, что драйвер функции не указан для этого устройства"

    Потом я попытался вручную установить в реестре свой фильтр. Прописал в

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FilterService]
    "ErrorControl"=dword:00000000
    "ServiceType"=dword:00000001
    "StartType"=dword:00000003
    "DisplayName"="Filter Service"
    "ImagePath"= "system32\drivers\filter.sys"

    Затем, там где мой геймпад добавил параметр LowerFilters = "FilterService" вручную
    в
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_0f30&Pid_0111\7&350cd513&0&1]


    Незная достаточно ли этого, перезапустил систему, посмотреть что будет. В итоге в диспетчере устройств в свойствах геймпада, такая ошибка появилась. И джой не отображается в списке игровых устройств.

    "Windows не удалось запустить это устройство, поскольку информация о его конфигурации в реестре неполна или повреждена. (Код 19)"

    После удаления LowerFilters джой снова видно.

    В общем проблема то-ли с установкой, то-ли с filter.sys. Кстати в исходном коде filter.sys ничего не менял.

    Еще в файле filter.c в процедуре IoCreateDevice , незнаю что написать 4м аргументом, там стоит FILE_DEVICE_UNKNOWN, но что для usb геймпада писать?

    Еще если есть у кого програмка старая debugprint monitor буду очень признателен если кто выложит на рапиду =). В инете не мог найти.
     
  2. toruserr

    toruserr New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2010
    Сообщения:
    2