Как установить драйвер фильтра в качестве нижнего драйвера фильтра?
Верхний и нижний драйверы фильтров устанавливаются практически одинаково - вам на самом деле не требуется INF - вы можете просто установить значения в реестре.
Конечно, это зависит от того, какой тип драйвера фильтра вы хотите установить, но, например, если я хочу установить драйвер фильтра более низкого класса, я открою Regedit и перейду к следующей клавише:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}
Здесь вы должны увидеть строковое значение UpperFilters, содержащее PartMgr. Если вы хотите добавить фильтр нижнего уровня, просто создайте значение параметра LowerFilters и присвойте ему имя ключа вашего драйвера. GUID в имени ключа ужасен, но если вы сканируете с помощью ключа Class, вы увидите множество ключей с именами GUID - значение по умолчанию каждого из них содержит краткое описание устройства, которое представляет ключ.
Как и PartMgr и все остальные драйверы, вам нужно создать ключ драйвера в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
со всеми соответствующими значениями конфигурации. Если вы не уверены в значениях для вашего драйвера, дамп всего ключа HKLM \ SYSTEM в файл, установите драйвер нормально, возьмите второй дамп всего ключа HKLM \ SYSTEM и разведите дампы, чтобы увидеть, какие значения были помещены где.
Могу ли я поместить свой драйвер в определенное место этого стека?
Вопреки тому, что любой говорит вам иначе, ответ - нет. Иногда люди считают, что если в параметрах реестра UpperFilters и LowerFilters указано несколько драйверов, первый из этого списка загружается первым. Я даже был свидетелем этого превращения в «войны за регистрацию», когда водители постоянно борются за свою позицию в списке. Это чепуха, и вы должны разработать свой драйвер, чтобы справиться с любым другим драйвером, появляющимся выше или ниже вас.