Установка драйверов фильтра на существующее устройство - PullRequest
2 голосов
/ 24 апреля 2011

Я учусь писать драйвер фильтра и пытаюсь установить поверх него существующий драйвер HID (мышь или клавиатура) для практики.Из того, что я понимаю, я должен по крайней мере добавить ключ UpperFilters к разделу реестра оборудования.Что еще я должен сделать?

Когда я использую regedit, чтобы вручную добавить ключ UpperFilters к целевому USB-устройству мыши, regedit говорит, что он не может создать ключ.Я подозреваю, что regedit запрещает вносить изменения в реестр стека драйверов устройств, предоставляемый Windows.Существуют ли другие способы установки драйвера фильтра в существующий стек устройств?

1 Ответ

4 голосов
/ 04 мая 2011

Windows 7 по умолчанию запрещает изменения в иерархии HKLM\SYSTEM\CurrentControlSet\Enum для всех, кроме учетной записи SYSTEM (то есть даже для администраторов), поэтому добавление ключа UpperFilters к определенному устройству вручную не так просто.Однако изнутри INF это должно быть просто.

Однако, если вы хотите отфильтровать все мыши, вы должны добавить ключ UpperFilters к классу устройств Mouse, то есть к HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96F-E325-11CE-BFC1-08002BE10318}.Это должно быть беспрепятственно даже в Windows 7, но обычно вы также делаете это через INF.

При записи INF вы можете добавить флаг FLG_ADDREG_APPEND (0x00000008) в разделе AddReg так что ваш фильтр будет добавлен к любым другим фильтрам в классе устройств Mouse.

...