Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Направления программирования
>
Drivers
(Модераторы:
Ochkarik
,
aks68
) > Тема:
Вопрос по фильтрам
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Вопрос по фильтрам (Прочитано 7292 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
Вопрос по фильтрам
«
:
27-08-2004 09:18 »
Простите если очень уж тупой вопрос. :oops:
предположим что есть некий драйвер фильтр сериального порта. Интересует в каком порядке проходят данные. Т.е. при попытке послать что то на принтер какой путь проходят данные ? Сначала попадают в фильтр, а уже потом передаются драйверу ? Если да, то как происходит запрос в системе ? Ведь как я понимаю приложение обращается к драйверу порта, а не к фильтру(т.е. открывает CreateFile() сам драйвер порта а не драйвер фильтр) ?
Простите если плохо объяснил, сам уже запутался.
Записан
MCP, MCAD, MCTS:Win, MCTS:Web
Scorp__)
Молодой специалист
Offline
Пол:
Вопрос по фильтрам
«
Ответ #1 :
27-08-2004 09:42 »
Не буду утверждать, но по-моему если приложение обращается впрямую к драйверу порта, то оно минует фильтр. Если же запрос идет через ОС без создания устройства, то ОС пошлет IRP драйверу находящемуся на верхушке стека, то есть фильтру, а фильтр должен послать пакет нижележащему драйверу и так до конца.
В твоем случае, то есть если посылать на принтер, то попадет сначала фильтру.
Записан
- А Вы сами-то верите в привидения?
- Конечно, нет, - ответил лектор и медленно растаял в воздухе.
SlavaI
Главный специалист
Offline
Вопрос по фильтрам
«
Ответ #2 :
27-08-2004 10:53 »
Значит так - запрос всегда пройдет через все фильтры,если он послан из ф-ции операционной системы- они всегда вызывают IoCallDriver на самый верхний девайс в цепочке( есть исключения, например 6 специальных FastCall ф-ций в файловой системе никогда не пройдут через фильтр) но в 99% запрос пойдет через всю цепочку, всегда через всю цепочку идут запросы на открытие и чтение/запись. Обойти фильтр можно только вызвав( IoCallDriver ) напрямую драйвер, лежащий ниже его.
Записан
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
Вопрос по фильтрам
«
Ответ #3 :
27-08-2004 11:15 »
Scorp__)
,
SlavaI
, спасибо, уже понятней.
То есть теоритически, если проходит сообщение через фильтр, значит его можно отловить, обработать, и послать нижестоящему в стёке драйверу ?
Записан
MCP, MCAD, MCTS:Win, MCTS:Web
SlavaI
Главный специалист
Offline
Вопрос по фильтрам
«
Ответ #4 :
27-08-2004 11:58 »
Цитата
То есть теоритически, если проходит сообщение через фильтр, значит его можно отловить, обработать, и послать нижестоящему в стёке драйверу
Да, а можно и не посылать.
Записан
Scorp__)
Молодой специалист
Offline
Пол:
Вопрос по фильтрам
«
Ответ #5 :
27-08-2004 12:29 »
SlavaI
, а просто интересно выяснить. Если вызвать DeviceIoControl к устройству нижележащего драйвера, фильтр ничего не узнает?
Записан
- А Вы сами-то верите в привидения?
- Конечно, нет, - ответил лектор и медленно растаял в воздухе.
SlavaI
Главный специалист
Offline
Вопрос по фильтрам
«
Ответ #6 :
27-08-2004 12:35 »
Цитата
Если вызвать DeviceIoControl к устройству нижележащего драйвера, фильтр ничего не узнает
Нет, не узнает, через него Irp не пройдет.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Направления программирования
>
Drivers
(Модераторы:
Ochkarik
,
aks68
) > Тема:
Вопрос по фильтрам
Загружается...