2012-01-24 5 views
1

Как установить драйвер фильтра в качестве более низкого фильтра фильтра? Все образцы DDK - это драйвер верхнего фильтра. Есть ли какой-либо метод, кроме использования файла INF для выполнения этой работы? Я знаю, что нижние драйверы фильтров находятся под FDO и вершиной BDO, но если есть более один драйвер нижнего фильтра, как они упорядочены? Могу ли я разместить свой драйвер в определенном месте этого стека?Датчик нижнего фильтра

ответ

4

Как установить драйвер фильтра в качестве более низкого фильтра фильтра?

Установки верхнего и нижнего фильтров установлены одинаково - на самом деле не требуется INF - вы можете просто установить значения в реестре. Конечно, это зависит от того, какого типа фильтра драйвера вы хотите установить, но в качестве примера, если я хочу, чтобы установить более низкий драйвер класса фильтра диска, я открываю Regedit и перейдите к следующему разделу:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318} 

Здесь вы должны увидеть строковое значение, называемое UpperFilters, содержащее PartMgr. Если вы хотите добавить Нижний фильтр, просто создайте значение LowerFilters и установите для него имя своего ключа драйвера. GUID в имени ключа ужасен, но если вы сканируете ключ Класса, вы увидите много ключей с именем GUID - по умолчанию каждое из них содержит краткое описание того, какое устройство представляет собой ключ.

Как и PartMgr и все другие драйверы, вам необходимо создать ключ драйвера под HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services со всеми соответствующими значениями конфигурации. Если вы не уверены в значениях для своего драйвера, сбросьте весь файл HKLM \ SYSTEM в файл, установите драйвер обычно, возьмите второй дамп всего ключа HKLM \ SYSTEM и сравните дампы, чтобы увидеть, какие значения были поставлены где.

Могу ли я разместить свой драйвер в определенном месте этого стека?

Вопреки тому, что кто-то говорит вам иначе, ответ отрицательный. Люди иногда считают, что, когда несколько драйверов перечислены в значениях реестра UpperFilters и LowerFilters, первый из них в этом списке сначала загружается. Я даже стал свидетелем этого поворота в «реестровые войны», где водители постоянно борются за свою позицию в списке. Это вздор, и вы должны спроектировать своего водителя, чтобы справиться с любым другим драйвером, появляющимся выше или ниже вас.

+0

Раньше я использовал для установки нижних/верхних фильтров с помощью API-интерфейса реестра (изменение значения LowerFilters/UpperFilters). Иногда изменения не выдержали перезагрузки (или существовали только на некоторое время, я не знаю точно, так как проблема возникла довольно редко). Я думаю, что было бы лучше использовать Setup API для этой задачи, если вы не предпочитаете файлы INF. –

0

Вы можете предоставить драйвер для драйвера osr.com, который будет загружать ваш драйвер как в верхний, так и в нижний драйвер фильтра. Обычно это утилита, основанная на gui, в которой у вас будут все параметры, требующие загрузки драйвера. 1. вы можете установить порядок загрузки драйвера. 2. вы можете выбрать своего водителя, какой вид вы написали. 3. не нужно устанавливать inf для установки ключа реестра, он сделает это за вас автоматически, но если вы хотите изменить это значение ключа, вы можете сделать это вручную. 4. для получения дополнительной информации посетите www.osr.com. Наслаждайтесь :-)

Смежные вопросы