Драйвер фильтр файловой системы

Тема в разделе "WASM.NT.KERNEL", создана пользователем Marik, 14 мар 2007.

  1. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Доброго времени суток!!!
    Задача у меня следующая: фильтровать запросы на запись на определенный диск(т.е. сделать диск только на чтение) в связи с этим возникли кое какие вопросы:
    1. Наглядный примеры для этого diskmon и filemon. На сколько я понимаю мне идеально подходит diskmon, но большинство программистов для этих целей используют именно filemon(для контроля доступа на диски) Время на уровне diskmon более критично по сравнению с filemon, в этом вся причина? Если я буду перехватывать disk.sys, не затормозит ли это существенно всю систему? Хотелось бы услышать мнение wasmа-сообщества
    2. Я уже немного начал разбирать diskmon, так вот я должен перехватить IRP_MJ_WRITE и IRP_MJ_FLUSH_BUFFERS(через них идет запись). IRP_MJ_WRITE я посто завершаю
    Код (Text):
    1. mov (_IRP PTR [ecx]).IoStatus.Status, STATUS_MORE_PROCESSING_REQUIRED  
    2. and (_IRP PTR [ecx]).IoStatus.Information, 0
    3. fastcall IofCompleteRequest, ecx, IO_NO_INCREMENT
    4. mov  eax, STATUS_MORE_PROCESSING_REQUIRED
    Правильно ли я завершаю? как обработать IRP_MJ_FLUSH_BUFFERS?
     
  2. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    STATUS_MORE_PROCESSING_REQUIRED имеет смысл только в Completion Routine.

    http://support.microsoft.com/kb/320275
    http://support.microsoft.com/kb/326315/
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Лучше верни STATUS_ACCESS_DENIED
     
  4. DeeoniS

    DeeoniS New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2004
    Сообщения:
    132
    а отмену IRP нельзя заюзать???
     
  5. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Попробывал - получается большая задержка перед выводом сообщения "Доступ запрещен",
    а с STATUS_MORE_PROCESSING_REQUIRED, сразу "не удалось, имеются дополнительные параметры" ;))) Почему возможна такая задержка?

    Что думаете по поводу других пунктов? Стоит ли подниматься по стеку драйверов еще выше?
     
  6. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Что бы использовать STATUS_MORE_PROCESSING_REQUIRED, мне нужно установить процедуру завершения и в ней вызывать IoFreeIrp, чтобы освободить ресурсы системы???
     
  7. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Нет, т.к. IRP не твой.

    Обработка IRP - сложный вопрос. Настоятельно рекомендую в течении недели ( не меньше ;) ) читать:

    "Драйверы режима ядра: Часть 15 : Жизненный цикл IRP"
    http://www.wasm.ru/print.php?article=drvw2k15
    Сорри за самопиар, но по-русски ничего лучшего нет.

    "Secrets of the Universe Revealed! - How NT Handles I/O Completion"
    http://www.osronline.com/article.cfm?id=83

    "Proper Completion -- Resubmitting IRPs from within a Completion Routine"
    http://www.osronline.com/article.cfm?article=391

    На osronline.com (требуется регистрация).

    Документаця IFS Kit:
    "How Windows NT Handles I/O Completion"

    "Different ways of handling IRPs"
    http://support.microsoft.com/kb/320275
    http://support.microsoft.com/kb/326315/

    Ну и вообще всё, что подвернётся по этой теме.
     
  8. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    кстати давно хотел спросить, как вы обходите это:
    You Must Subscribe to The NT Insider To Read This Article
    или все кроме меня получают увесистые буки "удобные для чтения в самолетах"?
     
  9. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    z0mailbox нормально зарегестрировался, читаю теперь
    Four-F - спасибо за материал
    По поводу filemon что скажите?
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Не знаю про увестистые буки, но мне иногда приходят тоненькие подшивки. Типа журнал :P