Здравствуйте, Thorik, Вы писали:
T>Добрый день,
T>я пытаюсь написать драйвер фильтр файловой системы для фильтрации IRP_MJ_CREATE запросов. За основу взял sfilter example из IFS Kit. Сейчас на этапе теста я просто отсылаю имя файла полученое в обработчике IRP_MJ_CREATE юзер процессу. Я заметил что не при всех открытиях файлов мне приходит IRP_MJ_CREATE для открываемового/копируемого файла. Все фаст функции зарегестрированы и все возвращают FALSE. Функция получения имени скопирована из ФайлСпая (ИФС Кит сампл).
немного из теории оформления bugreports:
не указано
— для какой OS сборка
— на какой OS проблемы
— версию IFS Kit из которого выдернут sfilter — разные версии с разными проблемами

— шаги для воспроизведения: а именно какие файлы вызывают проблему?
— ловит ли оригинальный sfilter \не тронутый Вами никак\ имена как надо?
— версия filemon! Тот, который с открытыми исходниками 4.34 — тоже с проблемой?
Или Вы проверяли последним 6.0х с их сайта — который уже сам по-правильному сделан наконец?
так абстрактно сказать что-то сложно — ведь нельзя исключать и элементарно какую-то проблему в Вашем коде, вроде неправильной работы с кэшем имен
лучше взять sfilter из последних IFS Kit — XP SP1 or 2003
T>Но есть небольшое но.... после запуска и во время работы Файл Монитора с сис интерналс мне начинают приходить IRP_MJ_CREATE и всё работает чётко. Насколько я понял ФайлМон эту лазейку(через которую без IRP_MJ_CREATE открываются файлы) прикрывает. Если кто встречался с подобными проблемами или знает где я что не так сделал, пожалуйста подскажите как заставить систему присылать мне IRP_MJ_CREATE.
во-первых, часть file objects может быть создана в обход IRP_MJ_CREATE: например, это Ntfs stream objects.
К этому реально нужно быть готовым

и об этом писали как на OSR так и я здесь пару раз.
... << RSDN@Home 1.1.4 @@subversion >>
- Виндовс ХР
— на ней же проблемы
— пример из Windows® Server 2003 IFS Kit
— тестовая версия должна блокировать все .тхт файлы,
закономерностей не наблюдается — четыре раза может выдать доступ запрещён,
а на пятый нормально открытся. При открытии файла приходят 2 IRP_MJ_CREATE — один от файлового менеджера, потом квери инфо и клосе, второй от нотепада. Проблема в том что от нотепада приходит не всегда. Аналогично при копировании, удалении и переименовании.
— чистый сфильтр тоже ловит не всегда.
— файлмон последний версии, при его включении начинает стабильно приходить второй IRP_MJ_CREATE от нотепада.
так абстрактно сказать что-то сложно — ведь нельзя исключать и элементарно какую-то проблему в Вашем коде, вроде неправильной работы с кэшем имен
кэшем имен

Функцию возвращения имени передрал из ФайлСпай практически ничего не менял.
во-первых, часть file objects может быть создана в обход IRP_MJ_CREATE: например, это Ntfs stream objects.
К этому реально нужно быть готовым и об этом писали как на OSR так и я здесь пару раз.
Про стримы читал в хелпе к ИФС, а они никаких спецефических реквестов не отсылают?