FS Development - KMDF Windows Драйвер

Я новичок здесь и пытаюсь разработать концептуальный драйвер fs для tar 'filesystem' (mount tar). Мой вопрос: как ОС определяет, что раздел имеет файловую систему TAR, и автоматически загружает мой драйвер?

1 ответ

Решение

В первую очередь загружается ФС с именем IoRegisterFileSystem - эта подпрограмма вставляет объект устройства в список файловых систем в системе. тогда у вас должен быть WRK. когда говорят файл открывается на устройстве с VPB IopCheckVpbMounted называется и он звонит IopMountVolume - это ключевой момент для понимания. эта процедура сначала просматривает список с зарегистрированной FS и отправляет IRP_MN_MOUNT_VOLUME всем, пока некоторые FS не вернут код успеха. также последняя запись в списке - специальный распознаватель файловой системы - он пытается определить формат тома. и если да - он вернется STATUS_FS_DRIVER_REQUIRED - указывает, что нужно загрузить новую ФС для этого тома. Система в этом случае вызова IopLoadFileSystemDriver, эта процедура вызывается, когда драйвер распознавателя мини-файловой системы распознает том как определенную файловую систему, но драйвер для этой файловой системы еще не загружен. в настоящий момент FS_Rec.sys поддерживает следующую FS:

cdfs
ReFS
ReFSv1 // begin from win 10
ExFat
FastFat
Udfs
Ntfs

для поддержки других - вам нужно или автоматически загрузить собственный драйвер FS или самопознаватель (мини-драйвер), которые распознают ваш FS и возвращают STATUS_FS_DRIVER_REQUIRED на IRP_MJ_FILE_SYSTEM_CONTROL.IRP_MN_MOUNT_VOLUME и загрузите свою ФС (вызовом ZwLoadDriver) на IRP_MJ_FILE_SYSTEM_CONTROL.IRP_MN_LOAD_FILE_SYSTEM

Другие вопросы по тегам