Например нужно обернуть весь стек фильтров, поставив свои фильтры в начале и в конце стека. Основные вопросы такие возможно ли совершить такую обертку? возможно ли контролировать положение своих фильтров в стеке? т е есть ли возможность удерживать всегда 1 и последнюю позиции в стеке фильтров? наверное очень глупые вопросы, но все-же ответьте пожалуйста )
Marik Допустим я поставил на них хук Как проследить за тем чтобы хук не сняли? И как проследить за тем чтобы драйвера всегда перехватывали именно 1 и последний в стеке фильтры? И есть ли еще какие-то предложения по обертке?
Снять его могжет аналогичный драйвер. Точнее не снять, а наложиться сверху, т.е. твой драйвер так или иначе всеравно получит управление. Если конечно у перехватываемого драйвера нет какой нить супер пупер защиты Спускайся вниз по стеку драйверов DeviceObject.DeviceObjectExtension.AttachedTo пока AttachedTo не станет = 0 вверх DeviceObject.AttachedDevice тоже пока не упрешься в 0. Сверху вот только в процессе работы могут приаттачится еще устройства. Отловить то это можно, сам не делал потому толком ничего не скажу.
UTeX теоретически - да на практике фильтр на файловую систему даже детачить, не то что выгрузить, не удается дома поиграться - сойдет, в продакшен коде за такие вещи яйца поотрывают, ибо бсодить будет со страшной силой ты сможешь аккуратно переключиться с одного положения в стеке на другое под шквальным потоком ИРП-шек ?
Повесить фильтр в reinitialize процедуре и поставить ему флаг инициализации, чтоб к нему больше никто не атачился