Возможные места установки драйвера минифильтра

Атрибуты драйвера MiniFilter (и, если уж на то пошло, любого драйвера) следующие: файл-для-драйвера-минифильтра" rel="nofollow noreferrer">инкапсулирован в файл .INF. Одним из разделов в файле .INF является раздел DestinationDirs, который, по мнению Microsoft, является необязательным. Большинство примеров, которые я видел, используют значение 12 (или 11). 11 - \Windows\System32\ 12 - \Windows\System32\Драйверы

Каковы другие возможные значения

MiniFilter.DriverFiles

и какой вариант можно использовать для установки драйвера MiniFilter по пользовательскому пути (например, "c:\myfolder\")?


person Michael Haephrati    schedule 20.10.2019    source источник


Ответы (1)


Вы можете использовать любой из определенных идентификаторов DirId. Чтобы использовать произвольный путь, укажите -1 и путь после запятой.

Но не рекомендуется размещать драйвер, связанный с файловой системой, в каталог, отличный от System32\drivers. Во время ранней загрузки загрузчику могут быть доступны только несколько системных каталогов, и ваш фильтр может быть не загружен. Это может помешать правильной инициализации системы.

person Eugene Muzychenko    schedule 20.10.2019
comment
Вы пишете «Во время ранней загрузки могут быть доступны только несколько системных каталогов», можете ли вы уточнить и дать ссылку на такую ​​​​информацию? - person Michael Haephrati; 20.10.2019
comment
Системы NT загружаются с разделов, а не с букв дисков (см. записи BCD или boot.ini для более старых систем). При ранней загрузке буквы дисков отсутствуют, соответствующие симлинки создаются позже. Драйвера, загружаемые при загрузке, не имеют путей, только имена файлов, загрузчик напрямую находит их в System32\drivers. Если модуль драйвера фильтра указан буквенным путем, не гарантируется, что буква будет известна при инициализации соответствующей FS. - person Eugene Muzychenko; 21.10.2019
comment
Что ж, единственный вариант, кроме папки «Драйверы», будет для некоторых разработчиков, устанавливающих драйвер в том же месте, что и файл .inf, и, возможно, любое программное обеспечение, использующее драйвер. Другими словами, размещение драйвера по текущему пути при установке драйвера. Как вы думаете, это невозможно для автозапуска драйверов? - person Michael Haephrati; 22.10.2019
comment
Для автозапуска драйверов это возможно практически во всех случаях. В большинстве случаев это возможно и для загрузочных драйверов, но вы должны четко понимать, когда ваш драйвер может быть загружен. Если он гарантированно загружается после полной инициализации системы (например, фильтрует только несистемные диски), вы можете разместить его там, где хотите. - person Eugene Muzychenko; 22.10.2019