Здравствуйте, x64, Вы писали:
AR>>Как создать DRIVER_OBJECT для DriverEntry драйвера ?
x64>Зачем?
Я разрабатываю драйвер фильтр файловой системы.
Загружаю драйвер для которого DRIVER_OBJECT = NULL.
Не работает обработка IRQ сообщений.
Пожалуйста, подскажите что делать.
Re[3]: Как создать DRIVER_OBJECT для DriverEntry драйвера ?
AR>Я разрабатываю драйвер фильтр файловой системы. AR>Загружаю драйвер для которого DRIVER_OBJECT = NULL. AR>Не работает обработка IRQ сообщений.
Что это за ересь? Во-первых, зачем в фильтре файловой системы загружать другие драйвера? Во-вторых, даже если это и необходимо, почему нельзя реализовать это через документированные средства ядра? И может быть всё таки IRP-пакеты имелись в виду, а не IRQ, которое есть суть совсем другое?
AR>Пожалуйста, подскажите что делать.
Меньше травы курить?
Re[4]: Как создать DRIVER_OBJECT для DriverEntry драйвера ?
Я пытаюсь создать Device для своего Driver. Для этого создаю DRIVER_OBJECT.
Следующей код рабочий, но неработает сам драйвер, похоже что не обрабатывая IRP:
Это похвально.
Какого типа девайс ты пытаешься создать?
Фильтрующий девайс (FiDO), управляющий девайс (CDO) или что?
AR>Для этого создаю DRIVER_OBJECT.
Ещё раз спрашиваю: зачем?
Объект-драйвер у тебя уже есть в DriverEntry().
При загрузке любого драйвера система создаёт его автоматически.
AR>Следующей код рабочий, но неработает сам драйвер, похоже что не обрабатывая IRP:
Следующий код это кусок просто невообразимого говна.
Я так понимаю, никакую литературу ты по файловым фильтрам не читал?
Какой ужос вообще, ну начини хотя бы отсюда и исходники из WDK полистай.
AR>DRIVER_OBJECT driverObject; AR>PDRIVER_OBJECT pdoDriver = g_pdoDriver;
Оспади, что это?!
К тому же, pdo это префикс физических девайсов.
В файловых системах не используется, равно как и в фильтрах.
AR>...i < IRP_MJ_MAXIMUM_FUNCTION...
Здесь нужно ставить <=.
Иначе пропустишь обработчик для IRP_MJ_PNP.
AR>RtlInitUnicodeString(&DeviceName, L"\\23456789");
Управляющие девайсы следует создавать в папке \Device.
Фильтрующие (приаттаченные в стек) девайсы имён не имеют.
AR>...FILE_DEVICE_DISK_FILE_SYSTEM...
Ты не имеешь права явно использовать этот тип.
Это возможно только если ты пишешь драйвер файловой системы.
Для управляющих девайсов следует использовать FILE_DEVICE_UNKNOWN.
Re[6]: Как создать DRIVER_OBJECT для DriverEntry драйвера ?
Здравствуйте, x64, Вы писали:
AR>>Я пытаюсь создать Device для своего Driver.
x64>Это похвально. x64>Какого типа девайс ты пытаешься создать? x64>Фильтрующий девайс (FiDO), управляющий девайс (CDO) или что?
x64>Ты не имеешь права явно использовать этот тип. x64>Это возможно только если ты пишешь драйвер файловой системы. x64>Для управляющих девайсов следует использовать FILE_DEVICE_UNKNOWN.
Статью прочитал, спасибо. Попробую сформулировать.
Это пример кода из драйвера файловой системы, с его device и пытаюсь
создать. Проблема в том что объект DRIVER_OBJECT из DriverEntry равен
NULL или недоступен. Я пытаюсь создать device для какого-то объекта который
не равен NULL, для этого создал переменную:
DRIVER_OBJECT driverObject;
Предпологаю что существует проблема с IRP в том что, для созданный
таким образом device, возможно, перестает обрабатывать IRP. Драйвер
файловой системы неработает. Подскажите как быть. Как создать свой
DRIVER_OBJECT ? Как это связано с обработкой IRP? Как это связано с
драйвером файловой системы?
Спасибо.
Re[7]: Как создать DRIVER_OBJECT для DriverEntry драйвера ?
Здравствуйте, x64, Вы писали:
AR>>Проблема в том что объект DRIVER_OBJECT из DriverEntry равен NULL или недоступен.
x64>Да откуда ж вас наркоманов столько берётся. x64>Т.е. по-твоему в DriverEntry() приходит NULL, я правильно понял?
Да, драйвер загружается из другого драйвера, без использования ZwLoadDriver.
Re[9]: Как создать DRIVER_OBJECT для DriverEntry драйвера ?
Ну так а у того, первого драйвера, есть объект-драйвер, или тоже нет?
Если есть, то его можно использовать для создания девайсов в других драйверах.
AR>...без использования ZwLoadDriver.
Почему нет-то?
Буткит что ли очередной пишешь?
Re[10]: Как создать DRIVER_OBJECT для DriverEntry драйвера ?