File system recognizer

Тема в разделе "WASM.NT.KERNEL", создана пользователем ProfessorNimnull, 11 окт 2011.

  1. ProfessorNimnull

    ProfessorNimnull New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2007
    Сообщения:
    26
    Доброе время суток, многоуважаемые знатоки =)

    Помогите разобраться с рекогнайзером. Драйвер регится как файловая система, создает объект устройства, в реесте есть записи, даже драйвер стартует. Но IRP_MJ_FILE_SYSTEM_CONTROL не получает. при этом созданная файловая система для тестов определяется как Raw. Где могут быть камни?
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    А зачем тебе вообще мини-драйвер нужен? Раньше оно использовалось, по сути, только для экономии ресурсов (память, в основном), но нужно ли это в современных условиях? Хотя не знаю, если ты собрался запускать это всё на каких-нибудь военных машинках, то да, там особо не разбежишься, наверное.

    Здесь что имеется в виду, - IoRegistertFileSystem() или что?

    Не понял, регистрация мини-драйвера выполняется до создания FSDO? Что за ересь ещё? Или я не так понял? И какого типа устройство создаёшь? Должно быть что-то вроде FILE_DEVICE_DISK_FILE_SYSTEM.

    Может быть, это потому, что другой (мини-)драйвер распознал том раньше, не?

    Что значит "файловая система определяется"? Кем определяется? Каким образом? Как вообще том создаётся? Это какое-то твоё виртуальное устройство или ты на реальный диск записал свои какие-то структуры?
     
  3. ProfessorNimnull

    ProfessorNimnull New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2007
    Сообщения:
    26
    Да, все верно.
    Конечно нет, вначале создается устройство. иначе никак. ибо IoRegisterFileSystem требует как раз его.
    Да, тип именно такой.


    а разве мини-драйвер - это не рекогнайзер?

    в вмвере диск. записал свои структуры. _FILE_SYSTEM_RECOGNITION_STRUCTURE

    Винда грит, что на томе raw, насколько я понимаю, значит винда не распознала файловую систему. Поэтому у меня и вопрос. вроде как по идеи io man должен был послать irp_mj_file_system_control драйверам, которые добавили себя в глобальную очередь файловых систем, но мой драйвер его не получает.
     
  4. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Это одно и то же, просто лично я предпочитаю использовать более устоявшиеся термины в русском языке, вместо того, чтобы тупо писать русскими буквами английские транскрипции.

    Похоже, что так.

    Да, но не сразу после регистрации (см. ниже).

    А ты пробовал явно вызвать, скажем, ZwCreateFile(), на твоём томе (например, \Device\HarddiskVolume2 или \??\D: или как там он у тебя называется)? Дело в том, что процесс распознавания и монтирования тома начинается только тогда, когда какой-либо поток пытается открыть том для чтения/записи данных (т.е. доступ нужно указывать как минимум FILE_READ_DATA, иначе монтирование запущено не будет).